比如说 以下节点(B和C是A的子节点)
A
|—B
|—C
在A,B,C节点(ABC大小相同完全覆盖) 都监听了 触摸事件 node.on(‘touchstart’, this.onTouchDown, this);
那么点击到C节点的时候 A和C 都能接收到事件 那么如何让B 也能接收到事件?
同求!从2dx转用creator,发现同级节点触摸事件不知道怎么传递,官方文档也没有说,不会真没有这个需求吧?触摸传递也是应该一层一层传递,而不是父子传递啊?
Creator实现的是冒泡事件吧(也即父子传递)~~~
这应该是属于事件广播吧?
据我所知,目前引擎是没有这种操作的~~~
onTouchStart里,return true就是不传递了,return false就是继续传递,你试试。
开发组快来看看吧
这个需求应该你自己实现。比如你在 A 上面挂个脚本,收到事件后,自己遍历所有子节点触发响应逻辑。
但是 这样如果点到任意一个按钮了 又要在每个按钮事件里调用一下 好麻烦
这种需求 应该还是比较常用的吧
比如在B节点上显示了一个tip小气泡提示框 这时只要你触摸屏幕 不管是点到C节点里的按钮还是什么 这个气泡要消失掉(同时按钮事件也要触发) 这种现在完全没法做啊 或者要在每个按钮事件里也要调用消失气泡 太麻烦了
cocos2d-x 就没这问题
小气泡显示时,在 Canvas 节点上监听点击事件,收到事件时去掉气泡,并且反注册刚刚监听的事件,不就好了吗?
关键是点到 任意一个按钮时 Canvas就收不到事件啊 被按钮拦截了
噢!之前这个 useCapture 的解释 看不明白
