1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
(function () { cce.EventTarget = function () {
this._listeners = {}; this.inBounds = false;
};
cce.EventTarget.prototype = { constructor: cce.EventTarget,
// 查看某个事件是否有监听 hasListener: function (type) { if (this._listeners.hasOwnProperty(type)) { return true; } else { return false; } },
addListener: function (type, listener) { if (!this._listeners.hasOwnProperty(type)) { this._listeners[type] = []; }
this._listeners[type].push(listener); cce.EventManager.addTarget(type, this); },
fire: function (type, event) { if (event == null || event.type == null) { return; }
if (this._listeners[event.type] instanceof Array) { var listeners = this._listeners[event.type]; for (var i = 0, len = listeners.length; i < len; i++) { listeners[i].call(this, event); } } },
removeListener: function (type, listener) { if (listener == null) { if (this._listeners.hasOwnProperty(type)) { this._listeners[type] = []; cce.EventManager.removeTarget(type, this); } } if (this._listeners[type] instanceof Array) { var listeners = this._listeners[type]; for (var i = 0, len = listeners.length; i < len; i++) { if (listeners[i] === listener) { listeners.splice(i, 1); if (listeners.length == 0) cce.EventManager.removeTarget(type, this); break; } } }
} }; }());
|