【问题标题】:How in Corona make distinction between click and long click?Corona 如何区分点击和长点击?
【发布时间】:2014-10-30 08:06:35
【问题描述】:

在 Corona 中如何区分 click 和 long click ? 我想点击移动下一个场景,如果长按显示一些数据(当用户按住该按钮时)而不是移动到下一个场景。如何做到这一点?

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-18
        • 1970-01-01
        • 1970-01-01
        • 2015-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-20
        相关资源
        最近更新 更多