2012-02-04 75 views

回答

0

是的,只有变化到手指移动记录。放下手指,举起手指并拖动触发事件。

0

但是,你可以在你的事件函数做

e.phase == "began" 

。当用户将手指放在屏幕上时,会触发这种情况。

0

触摸事件分阶段处理。因此触摸产生的事件已经“开始”,“移动”,“结束”和“取消”阶段。你可以使用的检测,因此,这样做:

self.isTouched = false; 

function defaultTouchHandler(e) 
    if(e.phase == "began") then 
     print("Tapped") 
     self.isTouched = true; 
     --User has touched the screen (not moving). Do "onMouseDown" things here 
    elseif(e.phase == "moved") then 
     print("Moved") 
     --User is moving their finger wile touching. Do "onMouseMoved" things here 
    elseif(e.phase == "cancelled" or e.phase == "ended") then 
     print("End of touch") 
     self.isTouched = false; 
     --User lifted their finger, or an interrupt happened. Do "onMouseUp" things here 
    end 
end 

self:addEventListener("touch", defaultTouchHandler) 

当你再需要检查,如果屏幕被触摸,简单地做:

if(isTouched) then 
    --Screen is being touched 
else 
    --Screen is not being touched 
end 

编辑:很明显,你可以改变“自我”在addEventListener行可以成为任何你想要听的触摸事件的对象

0
local object = display.newImage("ball.png") 
object.id = "ball object" 

local function onObjectTouch(event) 
if (event.phase == "began") then 
    print("Touch event began on: " .. event.target.id) 
elseif (event.phase == "ended") then 
    print("Touch event ended on: " .. event.target.id) 
end 
return true 
end 
object:addEventListener("touch", onObjectTouch)