Corona中的触摸事件什么时候会有“取消”阶段?

在 Corona 中,触摸事件有四个阶段:"began","moved","ended"和"cancelled"。何时会接收到“取消”阶段的事件?(我没有找到可以取消事件的函数,您只能删除侦听器)。 那么我如何在应用程序中使用“取消”事件阶段?

点赞
用户837856
用户837856

Corona SDK是在iOS和Android之上的一个抽象层;大多数设计决策将反映在底层平台上。

似乎触摸事件实现了UITouch对象(以及Android上的相应对象)。 在Google上搜索“ [iphone uitouch cancelled](http://www.google.com/search?q=iphone%20uitouch%20cancelled)”会导致[这个问题](https://stackoverflow.com/questions/533574/how-to-cancel-a-sequence-of-uitouch-events) ,它应该能回答你的问题。

如果需要手动“取消”事件,只需在关联对象(如果是简单表格,则在触摸事件中)中存储标志,并在调用“移动”或“结束”时检查它即可。

(免责声明:我从未使用过Corona,也没有为移动平台开发过。)

2012-05-24 12:57:14
用户3023165
用户3023165

如果你正在拿着一个物体、按钮等,而不是释放它,而是滑动手指,那么这将被注册为“canceled”,你可以做任何你想要的事情,通常与“ended”相同。

例如:

如果事件.event.phase == "began" then -- 按下按钮
   move = true
elseif event.phase == "canceled" then -- 滑动手指取消操作
   move = false
elseif event.phase == "ended" then -- 释放按钮
   move = false
end
2013-11-22 19:53:03