Files
fc/dev/project/library/imports/e5/e5358f40-d513-4667-8ab5-d77a3a394101.js
T

75 lines
1.8 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, 'e53589A1RNGZ4q113o6OUEB', 'eventor');
// Scripts/client/base/eventor.js
"use strict";
/*-----------------------------------------------------+
* 事件模块
*
+-----------------------------------------------------*/
// 事件功能基类
var BaseEvent = cc.Class({
ctor: function ctor() {
this._evt_idx = 0;
this._evt_list = {};
},
bind: function bind(evt_label, func, obj) {
if (!evt_label) {
// cc.log( "evt_label===null" );
return;
}
if (!func) {
// cc.log( "evt_func===null" );
return;
}
if (!this._evt_list.hasOwnProperty(evt_label)) {
this._evt_list[evt_label] = {};
}
var evt_id = this._evt_idx++;
this._evt_list[evt_label][evt_id] = {
f: func,
o: obj
};
return {
evt: evt_label,
id: evt_id
};
},
unbind: function unbind(evt) {
if (this._evt_list.hasOwnProperty(evt.evt)) {
delete this._evt_list[evt.evt][evt.id];
if (Object.keys(this._evt_list[evt.evt]).length == 0) {
delete this._evt_list[evt.evt];
}
}
},
fire: function fire(evt_label) {
if (!this._evt_list.hasOwnProperty(evt_label)) {
return;
}
var list = this._evt_list[evt_label];
var args = Array.prototype.slice.apply(arguments);
args.shift();
for (var key in list) {
list[key].f.apply(list[key].o, args);
}
},
fire_x: function fire_x(self, evt_label) {
if (!self._evt_list.hasOwnProperty(evt_label)) {
return;
}
var list = self._evt_list[evt_label];
var args = Array.prototype.slice.apply(arguments);
args.shift();
for (var key in list) {
list[key].f.apply(list[key].o, args);
}
}
});
// 基类导出
module.exports = BaseEvent;
cc._RF.pop();