簡體   English   中英

Corona SDK:觸摸事件

[英]Corona SDK: touch event

如何檢測屏幕是否被觸摸? 在我看來,在觸摸屏幕且手指不動時不會生成觸摸事件。

但是,你可以做

 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 )

是的,僅記錄手指運動的變化 放下手指,抬起手指並在觸發事件周圍拖動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM