Files
fc/dev/project/assets/Scripts/nx/plugin/nx.plugin.event.js
T
2026-05-23 22:10:14 +08:00

86 lines
1.6 KiB
JavaScript

/*******************************************************************************
*
* 代理: 事件
*
*
*
* 2021.12.10
******************************************************************************/
// 功能安装
const install = function( _inst ) {
// 对象非法
if( nx.dt.objEmpty( _inst ) ) {
nx.error( "[事件插件]安装失败,对象非法!" );
return false;
}
// 重复安装
if( nx.dt.arrGood( _inst.lstEvent ) ) {
nx.error( "[事件插件]安装失败,重复安装!" );
return false;
}
// 安装
_inst.lstEvent = [];
// 事件监听
nx.dt.fnEmptyError( _inst.bindEvent );
_inst.bindEvent = function( _list ) {
// 重复
if( nx.dt.arrNEmpty( _inst.lstEvent ) ) {
nx.error( "[事件插件]重复监听事件." );
return;
}
_inst.lstEvent = _list;
if( nx.dt.arrNEmpty( _list ) ) {
nx.event.bind( _inst, _list );
}
};
// 事件监听解除
nx.dt.fnEmptyError( _inst.unbindEvent );
_inst.unbindEvent = function() {
_inst.lstEvent = [];
nx.event.unbind( _inst );
};
// 事件发布
nx.dt.fnEmptyError( _inst.sendEvent );
_inst.sendEvent = function( _eid, _args ) {
nx.event.send( _eid, _args );
};
return true;
};
// 功能卸载
const uninstall = function( _inst ) {
// 对象非法
if( nx.dt.objEmpty( _inst ) ) {
nx.error( "[事件插件]安装视图插件失败,对象非法!" );
return false;
}
// 取消监听
_inst.unbindEvent();
// 卸载
delete _inst.lstEvent;
delete _inst.bindEvent;
delete _inst.unbindEvent;
delete _inst.sendEvent;
return true;
};
module.exports = { install, uninstall };