Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 加载外部SWF和FD的最新版本_Actionscript 3_Flashdevelop - Fatal编程技术网

Actionscript 3 加载外部SWF和FD的最新版本

Actionscript 3 加载外部SWF和FD的最新版本,actionscript-3,flashdevelop,Actionscript 3,Flashdevelop,(我与FlashDevelop合作) 我在项目中加载一些外部SWF时遇到问题。直到几个月前,他们将预加载集成切换为: [框架(factoryClass=“预加载”)] 从那时起,我用Loader()加载的swf就不显示了 你知道是什么改变了吗 谢谢 代码: public class Main extends Sprite { public function Main():void { if (stage) init(); else addEv

(我与FlashDevelop合作)

我在项目中加载一些外部SWF时遇到问题。直到几个月前,他们将预加载集成切换为:

[框架(factoryClass=“预加载”)]

从那时起,我用Loader()加载的swf就不显示了

你知道是什么改变了吗

谢谢

代码:

public class Main extends Sprite 
{

    public function Main():void 
    {
        if (stage) init();
        else addEventListener(Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event = null):void 
    {
        removeEventListener(Event.ADDED_TO_STAGE, init);
        // entry point

        loadMovie("Dots.swf");
    }

    private function loadMovie(url:String):void {
        var mLoader:Loader = new Loader();

        mLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
        mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);

        mLoader.load(new URLRequest(url));
    }

    private function onCompleteHandler(loadEvent:Event):void {
        trace("COMPLETE");
        addChild(loadEvent.currentTarget.content);
    }

    private function onProgressHandler(event:ProgressEvent):void {
        trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
    }

    private function ioErrorHandler (e:IOErrorEvent):void {
        trace("ERROR");
    }
}
“完整”被追踪到了吗?从你在这里发布的代码中我看不出太多,可能还有其他事情发生,尤其是Dots.swf

我马上看到的一件事是,您的loader对象可能正在被垃圾收集,但如果它正在跟踪“COMPLETE”,则肯定不是这样。尝试立即将loader添加到显示列表中,看看这是否会产生影响。例如:

var mLoader:Loader = new Loader();
addChild(mLoader);

我所有的工作都是在flashdevelope中完成的,没有任何问题。如果您能够共享更多的代码或示例项目,我可以进一步研究。

我认为这不是垃圾收集,因为如果我将相同的代码应用于旧swf(使用FD编译,但在更改之前),它会工作。从不调用完整事件。我只有从0到最大(文件大小)的进度。我认为这显然与FD编译SWF的方式有关。没有理由认为预加载方法的更改会影响进一步的加载。也许你以某种方式破坏了预加载程序-你能展示这个类(和预加载程序)的完整代码吗?我不认为预加载程序行是问题所在。当唯一改变的是这一行时^^