2011-12-23 55 views
3

我正在使用Corona的SDK storyboard API,在我的应用程序中我想让用户“再试一次”的关卡。我虽然只是要求如何在Corona SDK中重新启动场景?

storyboard.gotoScene("level20","flip") 

其中level20是当前场景,在事件发生后(录音的“重试”按钮)会工作,但现场保持在同一个地方的所有它的显示对象,而不是重置像我来自不同的场景。

是否可以从同一场景重新启动场景?

谢谢。

编辑:

正在使用电晕的版本:2.0.0,构建:2011.704

编辑(可能的修复):

我可能已经找到了修复。从“场景清除和清除”中的docs:当您进入新场景时,前一场景在内存中进行快速重新加载,场景:createScene()将删除该内存。

所以我发现的修复是打电话scene:createScene(),它似乎工作,但如果这是错误的方法,请让我们知道。谢谢。

回答

0

我还没有实际完成这件事我自己,但是基于这里的讨论:

http://blog.anscamobile.com/2011/11/introducing-the-storyboard-api/

它看起来你需要调用storyboard.purgeScene("level20")调用storyboard.gotoScene("level20","flip")

+0

谢谢,这似乎是合乎逻辑的,但我只是试过这个,模拟器冻结,我得到一个“电晕模拟器已停止工作”窗口。然而,Corona的终端不显示任何错误。 – SoftwareDev 2011-12-23 18:08:27

1

之前创建一个“哑场景',其中你可以在createScene()下创建storyboard.purgeScene(“level20”),然后在enterScene()中创建一个可以让storyboard.gotoScene(“level20”,“flip”)的函数。请确保在''level''级别'storyboard.purgeScene('dummy scene')20.你的下一个问题是'我需要创建20个虚拟场景吗?' storyboard.level = '20'下的变量不会从'虚拟场景'中调用该变量

0

上面看起来效果不好,我用简单的过渡效果得到了我的解决方案。

function scene:refresh(event) 
    local v = self.view 
     transition.to(v, {time=500, alpha=0.5, transition=easing.inExpo, onComplete=function(e) 
     self:destroyScene() 
     self:createScene() 
     storyboard.reloadScene() 
     transition.to(v, {time=500, alpha=1, transition=easing.outExpo}) 
    end}) 
end