如果在画布上添加一个sprite,如果这个sprite和画布都添加了鼠标点击事件,只要点击一次sprite,画布会响应两次点击事件
代码是这样的
点击后画布点击事件执行两次
sprite鼠标事件不论用MOUSE_DOWN还是MOUSE_UP都会让cavas事件执行两次,如果换成触摸事件TOUCH_START就不会出现这种问题,有哪位知道原因吗?
看下上面的引擎逻辑
3.6.2的 _handleMouseDown 和 _handleMouseUp 代码是一模一样的,且都有 event.propagationStopped = true,实测结果:mouseup正常,mousedown正常
2.4.10的 _mouseDownHandler 和 _mouseUpHandler 其它代码一模一样,只少了一行node.stopPropagation(); ,实测结果:mouseup正常,mousedown会有重复。_mouseDownHandler补上这一句之后,重新编译引擎,实测结果就正常了
确定引擎就是这样设计的?不是漏了一句?
刚对了下,你这个冒泡结果正确应该是下面这个结果,所以引擎侧是有问题的,这个版本的 mouse 事件处理有问题,如果使用 touch 事件,就没有这个问题。
onMouseDown3
onMouseDown2
onMouseDown1