3.8.8点击事件bug,点击事件穿透
A(A需要是Canvas)BC三个节点重叠,A在最底下编辑器中添加按钮和触发函数,B在中间层添加BlockInputEvents,C在最上层代码添加个空的Node.EventType.TOUCH_MOVE监听。
此时点击C节点会触发A的事件,穿透了B,去掉C的“Node.EventType.TOUCH_MOVE监听”,则正常。
这正常么?
补充下:A是Canvas节点才能复现出来
没发现你说的bug, 你试下新建一个demo测
层级不对吧
有点绕后半部分我记混乱了,问题更新了,再看下问题,我新建项目实测了确实有问题
你c节点没加BlockInputEvents,点击到了c节点,事件冒泡传到了canvas上
去掉C的“Node.EventType.TOUCH_MOVE监听”,则正常,是因为你C节点去掉了所有触发事件,点击直接穿透C节点到了B,B节点的BlockInputEvents阻止了冒泡,如果你希望点击C,C有点击事件并且阻止冒泡到A,应该在C里添加TOUCH_START、TOUCH_MOVE、TOUCH_END,并在回调里增加event.propagationStopped = true;而不是在C的前面加个BlockInputEvents节点
嗯,感谢原理讲清楚了,但是直观感受上:应该是层层冒泡,过程中间有“BlockInputEvents”层级应该就终止,这才复合人类使用习惯吧?