将Corona返回到先前场景会导致黑屏。

我遇到了一个问题,这个问题拖延了我的游戏进度。在场景1中,我点击菜单按钮,进入菜单,然后当用户想再次玩时,他们点击播放按钮,应该回到前一个场景,但实际上会显示一个黑屏。这是一些代码,这是场景1中的主菜单按钮:

function scene:enterScene(event)

local group = self.view

function menubutton:touch( event )
if event.phase == "began" then
    storyboard.gotoScene( "menu", "slideRight", 750 )
    audio.play(click)
    display.getCurrentStage():setFocus( event.target )
    event.target.isFocus = true
elseif event.target.isFocus then
    if event.phase == "moved" then
        print( "user has moved their finger off the button." )
    elseif event.phase == "ended" then
        print( "user has switched to the main menu" )
        display.getCurrentStage():setFocus( nil )
        event.target.isFocus = false
    end
end
return true

end

这是主菜单中的播放按钮:

function scene:enterScene(event)
local group = self.view

local function onSceneTouch( event )
    if event.phase == "ended" then
       audio.play(click)
       local previousScene = storyboard.getPrevious()
       if previousScene == nil then
       storyboard.gotoScene( "scene1", "slideLeft", 750 ) else
       storyboard.gotoScene(previousScene)
        return true
    end
 end
end

有什么想法吗?模拟器输出中没有任何错误。

编辑:当我将这一行代码放在菜单上时,空白屏幕停止了,但只有图像显示出来,背景图像按钮图像等,但没有其他任何东西。

local prior_scene = storyboard.getPrevious()
storyboard.purgeScene( prior_scene )
点赞
用户1502079
用户1502079

尝试使用 tap listener 而不是 touch listener。我看不到你的全部代码,但我认为问题就在那里。

场景1中的主菜单按钮:

function scene:enterScene(event)

    local group = self.view

    local function onMenuButtonTap( event )
        audio.play(click)
        storyboard.gotoScene( "menu", "slideRight", 750 )
        return true
    end
end

主菜单场景中的播放按钮:

function scene:enterScene(event)
    local group = self.view

    local function onPlayTap( event )
        audio.play(click)
        local previousScene = storyboard.getPrevious()
        if previousScene == nil then
            storyboard.gotoScene( "scene1", "slideLeft", 750 )
        else
            storyboard.gotoScene(previousScene)
        end
        return true
    end
end

------------------------------------------------------------

新代码:

------------------------------------------------------------

将以下代码在您的 scene1.lua 中更改:

function scene:exitScene(event)

    local group = self.view
    storyboard.destroyScene( "scene1" )

end

改为:

function scene:exitScene(event)

     local group = self.view

end

在你的 menu.lua 中添加这个:

function scene:createScene( event )
    local group = self.view

    storyboard.purgeScene( "scene1" )
end

scene:addEventListener( "createScene", scene )
2013-05-05 20:48:10