2013-12-14 29 views
0

我是很新,日冕和我似乎无法找到我的问题的解决方案:一个场景不会被删除

我有我的比赛水平,我使用的故事板,当玩家点击他们发送到level2场景的nextlevel按钮,场景以storyboard.removeALL()开始,但不会删除前一个场景,并且我的背景会混乱。

function nextlevel(event) 
    storyboard.gotoScene("level2") 
end 

function win() 
    nextlevelbutton = display.newRoundedRect(display.contentCenterX, 285, 120, 30, 3) 
    nextlevelbutton:setFillColor(61/255,61/255,61/255) 
    nextleveltxt = display.newText({ text = "Next Level", font = native.systemFontBold, fontsize = 20, x= display.contentCenterX, y = 285 }) 
    nextlevelbutton:addEventListener("tap", nextlevel) 

    end 

这是场景中的所有内容:enterScene函数。

这是level2的场景的开始:

local storyboard = require("storyboard") 
local scene = storyboard.newScene() 

storyboard.removeAll() 

我试图把nextlevel事件赢函数内部,但什么都没有发生。

感谢

回答

0

这会帮助你:

http://www.coronalabs.com/blog/2013/04/02/cleaning-up-display-objects-andlisteners/

如果您加载一个菜单,你想从所有其他类中删除一切,然后使用:

storyboard.purgeAll() 

应停止所有听众并移除所有对象。

你可以做的另一件事是添加以下代码:

function scene:didExitScene(event) 
storyboard.purgeScene("sceneyouareleaving") 
end 
scene:addEventListener("didExitScene") 

所有你需要做的就是调用该函数和你做:)

希望这有助于!

+0

嗯,我想这两种方法了,但它似乎没有之前的“storyboard.gotoScene(‘级别2’)”工作.. – Yupie

+0

试试“storyboard.purgeScene(‘sceneyouareleaving’)” – apmartin1991

+0

嗯,这不在一个函数中,我首先说:storyboard.purgescene和一个计时器延迟我使用storyboard.gotoScene,但它给了我一个错误:尝试索引字段contentbounds一个零值 – Yupie

0

而且,如果你“搞砸”的背景可能会建议,请记得添加所有对象创建,查看组:

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

然后当你创建对象,例如:

background = display.newImageRect("gfx/bg.png", 1425, 900) 
background:setReferencePoint(display.TopLeftReferencePoint) 
background.x = 0 
background.y = 0 
background:setFillColor(0, 255, 255) 

记得将它添加到组:

group:insert(background) 
+0

在我的creationcene函数中,我创建了所有的显示对象,最后我将它们全部放入组中。之后,我开始我的入门级功能,并使一些东西移动等。在entercene中的一个功能,我把:storyboard.gotoScene(“level2”)。这然后把我带到我的第二个场景。在那里我还放了:storyboard.removeAll()。但是第一个场景中的物体似乎并没有被移除,仍然停留在第二个场景中。 – Yupie

0

我总算解决了。我认为我在职能和组织的职位上做错了事。无论如何感谢您的帮助!