cc.Event事件
請不要直接創建 cc.Event 對象,因為它是一個抽象類,請創建 cc.Event.EventCustom 對象來進行派發。
cc.Class({
extends: cc.Component,
_sayHello: function () { console.log('Hello World'); },
onEnable: function () {
this.node.on('foobar', this._sayHello, this); //添加事件
},
onDisable: function () {
this.node.off('foobar', this._sayHello, this); //刪除事件
},
});
當我們從節點 c 發送事件 “foobar”,倘若節點 a,b 均做了 “foobar” 事件的監聽,則 事件會經由 c 依次傳遞給 b,a 節點。如:
// 節點 c 的組件腳本中
this.node.dispatchEvent( new cc.Event.EventCustom('foobar', true) );
如果我們希望在 b 節點截獲事件后就不再將事件傳遞,我們可以通過調用 event.stopPropagation() 函數來完成。具體方法如下:
// 節點 b 的組件腳本中
this.node.on('foobar', function (event) {
event.stopPropagation();
});