EventTouch type=touch-cancel eventCode=EventTouch.ENDED

  • Creator 版本: 3.0.0

  • 目标平台:Chrome浏览器

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

触摸回调事件中,我输出的EventTouch,type值为touch-cancel,eventCode值为2,不应该是3吗?怎么会是2呢?

EventTouch.BEGAN=0
EventTouch.MOVED=1
EventTouch.ENDED=2
EventTouch.CANCELLED=3

看起来是底层派发的是 touchEnd 事件,不过在引擎层 handleEndEvent 的时候会去做多一次 hitTest,如果检测到没有击中节点,最终还是被作为 touch-cancel 事件处理了

这块我们之后看看怎么统一下行为比较好,这里应该是 touch-cancel

从用户操作行为来说,确实是“手指离开了屏幕”。这里就应该是touch-cancel。如果是touch-end的话,如何区分是否离开了屏幕呢?
可否给个大概时间表,何时进行修复呢?

这里的 touch-cancel 应该是相对于节点来说的,如果是节点之外 离开屏幕 就应该是 touch-cancel