1

在过去的几年里,你一直对我有很大的帮助。我总能找到解决我的编程问题的方法。但是,这一次我找不到解决方案。尽管有一些讨论加载器的主题。我的很不一样。

问题:在第一个游戏屏幕中,我加载了一个电影(转换为 .swf 的电影)。在我切换到下一个状态后,它会卸载并且不再显示。在游戏结束时,我执行了我自己制作的重置函数(这与加载程序没有太大关系,它只是重置一些静态变量)并且游戏切换到第一个状态。

装载机再次出现。但是现在当我切换状态时,Loader 仍在显示。

注意:我正在使用 flixel 库。虽然我不认为在这种情况下它有很大的不同(虽然我认为它可能会因为我仍然有问题:P)。

我只放了重要的代码。我有三个按钮。假设我推。第三个按钮。在 switch 案例中,我输入案例 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;
        }
    }   
4

1 回答 1

0

你永远不会重置你的加载器,因此它只会保留上次加载的内容,要么简单地尝试重置(或实际重新启动)你的加载器(不是最好的方法(将进入从未有过的闪存垃圾收集)太棒了)但是嘿,它有效)

my_loader = new Loader();

或者(因为我没有看到)尝试简单地使用 unload(); 而不是 unloadAndStop(); (因为好吧,你不需要停止它,如果你正确卸载它,它无论如何都消失了)

祝你好运!

于 2012-11-13T10:43:00.137 回答