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