3.8.4 - 3.8.6 inputTouch穿透bug

  • Creator 版本:3.8.4 - 3.8.6

  • 目标平台: pc 浏览器 Google Chrome 和 引擎编辑器预览都有

  • 重现方式:请看vcr

  • 首个报错: 没有报错

  • 重现概率:100%

更换父节点后,buttom和inputTouch 事件穿透错乱,没有根据节点顺序进行响应.
BlockInputEvents 组件加了也没用。

复现工程:
inputTouchBug.rar (10.8 KB)

查了论坛发现,这个bug在2022年就有人报过了,还不止一个人:




最戏剧性的是github上显示3.7版本已经修复了。

我的棋子拖拽是不是因为这个bug导致的 :face_with_raised_eyebrow:

棋子交换功能bug,‘序号高’的棋子往‘序号低’的交换是正常的(序号从左到右从上到下递增,初始化时给定)
序号低的棋子试图拖拽到有序号高的棋子格时会被阻碍(无法继续拖拽,此时松开鼠标棋子也不会归位,仍处于onMouseMove状态)

你那不说版本号,也不说目标平台,demo也不提供,甚至连示例gif或者视频也没用,引擎组怎么给你定位问题 :joy:

我下载了demo试了下,编辑器和模拟器确实是有问题,但是浏览器是正常的。3.8.5版本
建议以构建后效果为准。

你确定?3.8.4、3.8.5、3.8.6我都用网页测过
请看VCR

我非常确定,代码一字未改,和你的操作没有任何区别。
我用编辑器和模拟器运行,和你VCR也是一样有问题。
但是我用浏览器就是正常的,没有你VCR中的问题。
我用的是Edge浏览器。

我用的Google Chrome

screenshots

人家修复的是修改节点排序(setSiblingIndex)后没事件派发顺序没重排 :joy:
修改父节点的可没说改了吧

 TOUCH_END(target:Node){
    target.setParent(this.layout,true)
    this.layout.eventProcessor.onUpdatingSiblingIndex();

    // this.layout.pauseSystemEvents(true);
    // this.layout.resumeSystemEvents(true);
}

我好奇为啥用Edge浏览器没事

环境:Win11 3.8.4 chrome
我测试刚打开项目的时候确实是Web端没问题,编辑器有问题。
但在我看了一会儿代码之后,重新运行编辑器,又没问题了