2.4.8 scrollview点击后,会自动设置content位置的问题,概率发生

有没有大佬们知道,代码创建的scrollview,鼠标重复点击时,进入 _onTouchMoved的_handleMoveLogic方法,content的y值有概率被设置为 -contentHeight,contentHeight是content节点的高度。因为创建的node,view,content的锚点都是 0,0,显示会错位。


  • Creator 版本: <2.4.8>

  • 目标平台: <谷歌浏览器>

  • 重现方式:重复点击一点,可能会出现;没出现时,重启游戏重复点击操作。

  • 重现概率: <小概率>

有官方大佬看下吗,这种使用方法,是不是源码上,有哪里不允许的

现成的组件,预制体,为啥不用呢。

业务上的原因,现在修改成本有些高,不过这是引擎的bug吗

补充,content节点开启了3d属性,is3DNode 设为了true,eulerAngles.x设为了-30度,更新了z值,用来做地图透视效果。和这个有关系吗,求大佬指教 :pleading_face:

之前遇到过类似的问题, 我们之前的做法是 禁止 scrollview 组件的 enable 。 你可以试试。 触碰的时候关闭, 触碰结束了开启。

铁汁,方便给个 demo 么?我们的测试没复现问题。

已经解决了,点击同一位置后,一定概率 触发了 scrollview 的 _onTouchMoved 方法,此时因为点击前后位置相同,导致后续逻辑出错。
解决方法是重写了 _handleMoveLogic 方法,如果点击前后位置相同,直接return掉。
为什么点击位置未发生改变,但触发了 _onTouchMoved 方法,没找到原因,可能是对content做了3d属性和旋转处理?
不过源码还是可以加一下, _handleMoveLogic 方法里,如果位置未发生改变,return掉。

1赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。