在corona中限制触摸事件

我在我的类上有一个按钮,可以将用户从一个场景带到另一个场景,比如从主菜单到游戏页面。现在,这个功能可以正常工作,但我想限制触摸。比如说,如果我点触按钮并拖动,那么过渡就不会生效,但如果我点触按钮然后松开它,它应该可以工作。我该怎么做?以下是我的代码,但它并不起作用:

    if event.phase == "moved" then
    print("cannot be")
elseif event.phase == "began" then
    if event.phase == "ended" then
                storyboard.gotoScene("Game", "fade", 400)
    end
end

我该如何限制触摸事件?比如说,如果我轻点按钮,然后拖动过屏幕并在按钮上放手,它就不会转换到下一个场景?

点赞
用户1979583
用户1979583

你应该尝试使用 tap 代替 touch。代码如下:

local function sceneChangeFunction()
    storyboard.gotoScene("Game", "fade", 400)
end

Runtime:addEventListener("tap",sceneChangeFunction)

或者

如果你想直接使用 touch,那么你可以像下面这样做:

local sceneChangeFlag = false  -- 创建一个标志,将其设为 false
local function sceneChangeFunction(e)
    if(e.phase=="began")then
        sceneChangeFlag = true       -- 在 touch began 中将其设为 true
    elseif(e.phase=="moved")then
        sceneChangeFlag = false      -- 在 touch moved 中将其设为 false
    else
        if(sceneChangeFlag==true)then    -- 只有在标志为 true 时才切换场景
            sceneChangeFlag = false
            storyboard.gotoScene("Game", "fade", 400)
        end
    end
end

Runtime:addEventListener("touch",sceneChangeFunction)

继续编写代码吧..... :)

2013-03-27 08:21:06