Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3装载机不';游戏重置后,不能卸载_Actionscript 3_Reset_Loader_Flixel - Fatal编程技术网

Actionscript 3 AS3装载机不';游戏重置后,不能卸载

Actionscript 3 AS3装载机不';游戏重置后,不能卸载,actionscript-3,reset,loader,flixel,Actionscript 3,Reset,Loader,Flixel,在过去的几年里,你一直对我帮助很大。 我总能找到解决编程问题的办法。 但是这次我找不到解决这个问题的办法。 虽然有一些主题讨论装载机。我的很不一样 问题是: 在第一个游戏屏幕中,我加载了一部电影(一部转换为.swf的电影)。 在我切换到下一个状态后,它将卸载,不再显示。 在游戏结束时,我执行我自己制作的重置功能(这没什么可做的) 无论使用什么加载程序,它只是重置一些静态变量)和游戏切换 到第一个州 装载机再次出现。但是现在当我切换状态时,加载程序仍然显示 注意:我使用的是flixel库。虽然我不

在过去的几年里,你一直对我帮助很大。 我总能找到解决编程问题的办法。 但是这次我找不到解决这个问题的办法。 虽然有一些主题讨论装载机。我的很不一样

问题是: 在第一个游戏屏幕中,我加载了一部电影(一部转换为.swf的电影)。 在我切换到下一个状态后,它将卸载,不再显示。 在游戏结束时,我执行我自己制作的重置功能(这没什么可做的) 无论使用什么加载程序,它只是重置一些静态变量)和游戏切换 到第一个州

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

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

我只放置了重要的代码。我有三个按钮。比方说我推。第三个按钮。在开关案例中,我输入案例2

reset函数是一个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;
        }
    }   

你从不重置你的加载程序,因此它只保留上次加载的内容,或者简单地像这样重置(或者重新启动)你的加载程序(这不是最好的方法(将进入flash垃圾收集,它从来没有这么棒),但嘿,它可以工作)

或者(因为我看不到)尝试使用simply unload();而不是unloadAndStop();(既然这样,你不需要停下来,如果你把它卸下来,不管怎样,它都不见了)


祝你好运

谢谢你的快速回复。当我切换到另一个状态时。假设我切换回AMCInlog。它是否已经重新启动了我的_加载器(您发布的代码行也在我的构造函数中)?。我还尝试了my_loader.unload()函数,但似乎没有任何区别。Afaik州不进行“垃圾收集”,因为您很可能会重用states感谢您的帮助。这意味着很多。我已经解决了这个问题。我想我还可以实例化一个新的FlxObject来加载电影。这样我就可以杀死()FlxObject。我不认为这是删除旧电影的最佳方式。但似乎效果不错。再次感谢您的帮助。是的,有时候flash就是这样,我相信有更好的方法,但这个(重置/杀死)实际上似乎没有伤害任何东西,flash应该自行垃圾收集。很高兴我能帮忙:)
my_loader = new Loader();