全局返回按钮

我正在制作一个游戏,在其中有许多叠加层和一个名为game.lua的场景。我希望能够在按下返回按钮(安卓设备上的硬件按键)时,如果有叠加层,则关闭叠加层;如果没有叠加层(只有game.lua场景),则显示exitmenu.lua(简单的弹出菜单)。

function onKeyEvent( event )
        if(event.keyName == "back") then
            local CurrentScene = composer.getSceneName("current")
            local CurrentOverlay = composer.getSceneName("overlay")

            if CurrentScene == "Scenes.game" and CurrentOverlay == nil then
                composer.showOverlay("Scenes.exitmenu", {isModal = true})
                return true
            elseif CurrentOverlay ~= nil and CurrentOverlay ~= "Scenes.exitmenu" then
                composer.hideOverlay("fade", 500)
                return true
            end
        end
end
Runtime:addEventListener("key", onKeyEvent)

当我在有叠加层的情况下按下返回按钮时,函数会隐藏叠加层,同时也显示exitmenu.lua叠加层。我不知道我的代码有什么问题,非常感谢任何建议。

点赞
用户6018093
用户6018093

编辑:我已经修复了它!我需要添加 event.phase == "down",这使得我的按钮按下只执行一次功能。这就是修复方法。

2016-03-07 00:03:02