cocos creator 3.7.3版本,触摸事件,只要触摸移动了,那么触摸结束事件无效。

this.node.on(Input.EventType.TOUCH_MOVE, () => {
console.debug(‘测试手指移动事件’)
}, this);
this.node.on(Input.EventType.TOUCH_END, () => {
console.debug(‘测试手指结束触摸事件’)
}, this);
this.node.on(Input.EventType.TOUCH_CANCEL, () => {
console.debug(‘测试手指结束触摸事件’)
}, this);
刚从3.5.2引擎升级上来。本来想触摸移动后,监听触摸结束的逻辑。现在实现不了。当触摸移动的第一次,TOUCH_CANCEL事件就触发了,完全跟官方文档写的不一样。

Node.EventType.TOUCH_XXX,另外你给node注册touch事件,move的时候是不是移动到了node之外

一样的,刚开始用的就是Node

测试过了,只有在3.5.2版本,我的逻辑是正常的,现在用的是3.7.3.不知道改了什么。

3.7.3我用了是正常的

我现在的问题是,监听触摸移动时,手指离开屏幕,没有触发回调逻辑。
如何只是点击弹起,逻辑是正常的。
但是我要的就是,触摸移动,然后触摸弹起时,处理相关逻辑。

图片
我测了一下没问题啊,你排查下你的代码逻辑吧

感谢你的回复,我重启编辑器,可以了。

果然任何东西重启就能解决95%以上的问题,这是玄学 :joy:

好像找到出问题的地方了:
PageView组件里的content节点下,创建一个节点A
对节点A注册触摸移动和触摸结束事件
应该会出现触摸移动后,触摸结束事件无效。。。

PageView组件是继承ScrollView组件的,cancelInnerEvents属性默认是true,也就是说滑动content时会取消子节点上注册的触摸事件

哦哦,好像看到面板有这么写。一直没当回事