0

我在使用 Android Back 键时遇到问题。电晕论坛没有帮助我。无论我在什么场景中,后退按钮只会让我回到主菜单,而不是像它应该的那样回到前一个场景。

我的应用程序的地图...

菜单 > 菜单 2 > 教程 > 教程 1

Tutorials 应该回到 Menu2,Tutorial1 应该回到 Tutorials,但都回到 Menu。

我在所有场景中都有这个功能,它们各自的“changeScene”可以返回上一个屏幕;但正如我所提到的,所有人都将我带回主菜单。

    local function moveBack()

     Runtime:removeEventListener("key", onKeyEvent)

     display.remove(allObjects);allObjects=nil

     director:changeScene("previousScene", "crossfade")

end

local function onKeyEvent( event )
        local returnValue = true

        if (event.phase=="up" and event.keyName=="back") then
                timer.performWithDelay(100,moveBack,1)
        end

        return returnValue
end
Runtime:addEventListener( "key", onKeyEvent )
4

1 回答 1

0

首先,您可能不应该删除 key 的事件处理程序。如果您这样做,它将不会响应未来的后退按钮按下。

其次,director:changeScene("previousScene", "crossfade") 将尝试转到名为 previousScene.lua 的文件中的场景。我不认为这是你想要做的。

您可能应该设置一个“历史”表,您可以在其中记录要返回的下一个场景,并在 moveBack 函数中,转到列表中的最后一个场景,然后从表中删除条目。当您进入场景时,您会将场景添加到最后的表格中。

于 2013-08-04T22:32:16.240 回答