"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();