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

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

作者: Thomas游戏圈 | 来源:发表于2020-05-21 14:59 被阅读0次

    在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交流二群】

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/bwgzohtx.html