【发布时间】:2014-10-30 08:06:35
【问题描述】:
在 Corona 中如何区分 click 和 long click ? 我想点击移动下一个场景,如果长按显示一些数据(当用户按住该按钮时)而不是移动到下一个场景。如何做到这一点?
【问题讨论】:
在 Corona 中如何区分 click 和 long click ? 我想点击移动下一个场景,如果长按显示一些数据(当用户按住该按钮时)而不是移动到下一个场景。如何做到这一点?
【问题讨论】:
您可以通过创建 2 个事件处理程序来实现它:
例子:
function object:touch( event )
if event.phase == "began" then
-- Show data
elseif event.phase == "ended" or event.phase == "cancelled" then
-- Hide data
end
return true
end
关于触摸事件的详细信息: http://docs.coronalabs.com/api/event/touch/phase.html
【讨论】:
这实际上很棘手,因为触摸处理程序必须仅在用户触摸更多超过一定时间时才显示数据。但是如果用户在触摸时没有移动手指,那么事件处理程序将不会在开始和结束阶段之间被调用,因此您没有机会使数据可见。
因此,您必须在开始阶段启动一个计时器,并回调一个使数据可见的函数。在结束阶段,您取消计时器,以便如果触摸持续时间不够长,则不会调用数据显示回调。同样在此阶段,您将数据可见性设置为 false,这样无论计时器如何,数据在释放触摸时都肯定不再可见。
当我可以访问我的桌面时,我可以显示一些代码。
【讨论】: