Corona如何区分点击和长按?

时间:2014-10-29 08:19:53

标签: lua corona

Corona如何区分点击和长按? 我想点击移动下一个场景,并在长时间点击的情况下显示一些数据(当用户手指按住该按钮时),而不是在下一个场景上移动。怎么做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以通过创建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

答案 1 :(得分:0)

这实际上很棘手,因为触摸处理程序必须仅在用户触摸更多而不是一定时间时才显示数据。但是如果用户在触摸时没有移动手指,那么事件处理程序将不会在开始和结束阶段之间被调用,因此您没有机会使数据可见。

因此,您必须在开始阶段启动一个计时器,并回调一个使数据可见的函数。在结束阶段,您取消定时器,以便如果触摸持续时间不够长,则不会调用数据显示回调。同样在此阶段,您将数据可见性设置为false,这样无论计时器如何,一旦触摸释放,数据肯定不再可见。

当我访问桌面时,我可以显示一些代码。