一篇文章搞定Cocos Creator开发中的自定义事件

2020-05-21  本文已影响0人  Thomas游戏圈

在Cocos Creator游戏开发中,事件处理非常频繁,特殊的情况下(例如扫雷、拼图、俄罗斯方块等游戏),我们还需要使用自定义事件,进行事件派发(自派发、冒泡派发)。点击链接加入群聊【unity/cocos交流二群】

一、 自定义事件

1: 监听: this.node.on(“自定义事件名称”, function, target, useCapture);

2: 自派送: emit(“事件名称”, [detail]); 只有自己能够收到;

3: 冒泡派送: dispatchEvent(new cc.Event.EventCustom(“name”, 是否冒泡传递));

二、 自派送emit

新建单色节点Blue,创建CustomEventTest.ts挂载到此节点上。

运行结果如下:

注意:此时,如果我们要在其父节点Canvas节点下也能接收到此SEND_EVENT事件,我们会设想,在GameMgr.ts中增加如下代码,但是事实上,运行后,GameMgr.ts的如下代码没有接收到派发事件。

运行结果如下(说明依然只有Blue自己这个节点接收到了emit派发的事件SEND_EVENT):

说明:如果派送的事件不只是发给自己,需要向上传递,则需要使用dispatchEvent。

三、 冒泡派送dispatchEvent

在CustomEventTest.ts中增加start方法如下:

同时将GameMgr.ts中的方法略作修改如下:

然后,运行结果如下:

注意:若将CustomEventTest.ts中的事件冒泡属性改为false,如下,表示不冒泡传递,则其父节点Canvas将收不到派发的事件。

若将CustomEventTest.ts中的将start方法注释掉,则运行结果如下:

点击链接加入群聊【unity/cocos交流二群】

上一篇下一篇

猜你喜欢

热点阅读