我在A脚本(在节点A上)用on注册了事件监听 在B脚本(在节点B上)用emit发射事件 为什么A接收不到事件回调?我尝试在脚本A里面emit,就能够收到。on和emit只能在同一脚本内才可以吗?不可能吧!那如果实现不同节点上不同脚本之间的事件传递呢?
可以实现,前提是你的A脚本没有被注销掉
脚本没被注销掉 就是不知道为什么收不到
on 和 emit 都是指定节点的,跟脚本应该没关系。
如果节点A进行了监听 也就是执行了on 节点B发射了事件 也就是执行了emit 那么B执行emit之后 A能收到事件吗?我现在是收不到。。。。。
原来试过emit 好像是只能在同一个节点脚本下,才可以接收到数据,用dispatchEvent,是用冒泡的方式传递事件,也只是子节点传到父节点,好像并不能传到兄弟节点,可以看一下文档这个地方,不知道记得对不对,你可以去验证一下
1赞
最好是自己去写一个事件监听,只要是有调用on监听的事件,无论在哪发送事件,都可以接受到,除非是脚本所在节点被释放掉了
那这个事件监听要如何写呢?你有代码么?
节点A要是节点B的parent,才能实现
试试这个
cc.director.on
搞个全局类,里面放一些必要的全局变量,记录需要互传消息的结点,然后 结点.emit 发送过去就行了。
cc.director.on,和cc.director.emit。
1赞
试了 不行
也不行
我发的不行么
你发的可以 不同地方使用的自定义事件对象必须是同一个 才有效
监听的对象不同,能有效么
我现在就是用的这个,应该是你姿势不对
你用的姿势不对啊,我一直都是这么用的啊