我有一个问题,当我调用Storyboard.purgescene()时,我的全局显示对象似乎已被删除。当我说"全局"时,他们实际上将它们存储在用户定义的故事板表中,以避免使用实际的全局变量:
我的图像数据库存储在外部文件toy_database.lua中:
local storyboard = require "storyboard";
storyboard.globalVars.toys = {
ball1 = {
src = 'img/stock-vector-soccer-ball-trimmed.png',
}
}
main.lua:
local storyboard = require "storyboard";
storyboard.globalVars = {};
require "toy_database_toybox";
我在main.lua中加载了一些图像:
storyboard.globalVars.toys["ball1"].imgPtr = display.newImageRect(storyboard.globalVars.toys["ball1"].src, w, h);
然后我去另一个场景:
storyboard.gotoScene("mainFloorScene");
在一切都很好的地方,显示对象是可访问的。我清除了那个场景,并获得了另一个场景:
storyboard.gotoScene( "openBoxScene" )
[in didExitScene()]: storyboard.purgeScene( "mainFloorScene" )
这里一切都很好。最后,我回到第一个场景,在路上清除当前场景:
storyboard.gotoScene( "mainFloorScene", "fade", 400 );
[in didExitScene()]: storyboard.purgeScene( "openBoxScene" )
回到第一个场景中,图像对象已被删除。如果我发表评论:
storyboard.purgeScene( "openBoxScene" )
它可以正常工作,所以我有解决方法,但我希望这种行为解释了。我希望场景清除只能删除该场景本地的显示对象。
发生了什么事?
我正在使用完全相同的方法来存储数据。我还使用了清除烯,但我的数据没有删除。我现在不想测试这个。我建议您在较旧的版本上尝试一下。