问题: 在第一个游戏屏幕中,我加载了一部电影(转换为.swf的电影)。 在我切换到下一个状态后,它会卸载并且不再显示。 在游戏结束时,我执行自己的重置功能(没有太多事情要做 随着加载器,它只是重置一些静态变量)和游戏切换 到了第一个州。
装载机再次出现。但现在当我切换状态时,Loader仍在显示。
注意:我正在使用flixel库。虽然我不认为它在这种情况下会产生很大的不同(虽然我认为它确实存在,因为我仍然有问题:P)。
我只放置了重要的代码。我有三个按钮。让我们说我推。第三个按钮。在开关案例中,我输入案例2.
重置功能是一个flixel函数:FlxG.resetGame()但我认为它并不是真的 物质
我希望这是有足够信息让别人看到问题/解决方案。 提前谢谢。
以下是代码:
AMCInlog.as
private var my_loader:Loader;
private var my_player:Object;
public function AMCInlog()
{
imgBackground = new FlxSprite(0, 0, Resources.imgStartMenuBackground);
add(imgBackground);
my_loader = new Loader();
my_loader.x = 40;
my_loader.y = 156;
my_loader.scaleX = 1.2;
my_loader.scaleY = 1.2;
//loadUserData();
moviePlayerSequence();
//userData.clear();
//createButtons();
}
private function moviePlayerSequence():void {
var request:URLRequest = new URLRequest("DGAME Movie.swf");
my_loader.load(request);
FlxG.stage.addChild(my_loader);
}
private function currentButtonFunction():void {
switch(currentButton) {
case 0:
my_loader.unloadAndStop();
FlxG.stage.removeChild(my_loader);
FlxG.switchState(new AMCRegister());
break;
case 1:
my_loader.unloadAndStop();
FlxG.stage.removeChild(my_loader);
FlxG.switchState(new AMCExistingAccountLogin());
break;
case 2:
my_loader.unloadAndStop();
FlxG.stage.removeChild(my_loader);
FlxG.switchState(new AMCPreferences());
break;
default:
break;
}
}
答案 0 :(得分:0)
你永远不会重置你的加载器,因此它只保留上次加载的内容,或者只是尝试重置(或实际重新启动)你的加载器就像这样(不是最好的方法(将进入flash垃圾收集,从来没有那么棒真的)但嘿,它有效)
my_loader = new Loader();
或者(因为我没看到)尝试使用简单的unload();而不是unloadAndStop(); (好吧,你不需要阻止它,如果你正确卸载它,它无论如何都消失了)
祝你好运!