1

我想知道如何检查用户是否触摸了屏幕,但正在按住他们的触摸并且没有移动。如果你有什么我可以去的,请帮忙。我一直在环顾四周,还没有找到任何东西来处理这个问题。

4

2 回答 2

5

您可以使用/修改它:(这是 Rob Miracle 所说的)

local holding = false
local function enterFrameListener()
    if holding then
        -- Holding button
        -- Code here
        -- Code here
        -- Code here
    else
        -- Not holding
        -- Code here
        -- Code here
        -- Code here
    end
end

local function touchHandler( event )
    if event.phase == "began" then
        display.getCurrentStage():setFocus( event.target )
        event.target.isFocus = true
        Runtime:addEventListener( "enterFrame", enterFrameListener )
        holding = true
    elseif event.target.isFocus then
        if event.phase == "moved" then
        elseif event.phase == "ended" then
            holding = false
            Runtime:removeEventListener( "enterFrame", enterFrameListener )
            display.getCurrentStage():setFocus( nil )
            event.target.isFocus = false
        end
    end
    return true
end

我相信touchHandler函数是什么很明显^^

于 2013-05-12T16:26:47.570 回答
1

您将需要将触摸侦听器添加到覆盖整个屏幕的对象,或者您可以将其添加到系统的运行时。

请参阅本指南: http ://docs.coronalabs.com/guide/events/detectEvents/index.html#hit

现在,这些触摸事件有三个“阶段”。当按下开始(“开始”)时你会得到一个,如果人移动他们的手指(“移动”),当他们停止触摸时,会有一个“结束”阶段。

根据您要执行的操作,如果您说在按住按钮的同时移动某些东西,那么您可以设置如下标志:

 if event.phase == "began" then
      pressed = true
 elseif event.phase == "ended" then
      pressed = false
 end

然后无论你在哪里移动,你都可以查看“如果按下则移动”。

于 2013-05-10T00:49:25.430 回答