Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
电晕SDK:触摸事件_Sdk_Lua_Touch_Coronasdk - Fatal编程技术网

电晕SDK:触摸事件

电晕SDK:触摸事件,sdk,lua,touch,coronasdk,Sdk,Lua,Touch,Coronasdk,如何检测屏幕是否被触摸?在我看来,触摸屏幕和手指不移动时不会生成触摸事件。是的,只记录手指移动的变化。放下手指,抬起手指并在事件周围拖动。但是,您可以这样做 e.phase == "began" 在您的事件函数中。这将在用户将手指放在屏幕上时触发。触摸事件分阶段处理。因此,触摸产生的事件已经开始、移动、结束和取消了阶段。因此,您可以通过执行以下操作来使用检测: self.isTouched = false; function defaultTouchHandler(e) if(e.

如何检测屏幕是否被触摸?在我看来,触摸屏幕和手指不移动时不会生成触摸事件。

是的,只记录手指移动的变化。放下手指,抬起手指并在事件周围拖动。

但是,您可以这样做

 e.phase == "began"

在您的事件函数中。这将在用户将手指放在屏幕上时触发。

触摸事件分阶段处理。因此,触摸产生的事件已经开始、移动、结束和取消了阶段。因此,您可以通过执行以下操作来使用检测:

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行上的self更改为您希望在其上侦听触摸事件的任何对象

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 )