Flash 外部预加载程序导致类型错误

Flash 外部预加载程序导致类型错误,flash,actionscript-3,preloader,Flash,Actionscript 3,Preloader,我正在构建一个FLA文件,它有一个文档类“Main”,在它的构造函数中,我告诉它跟踪(stage)。我添加了一个外部预加载程序来加载这个SWF,但是你知道吗,trace语句显示NULL 这是当前正在工作的预加载程序 import flash.display.Loader; import flash.events.ProgressEvent; import flash.events.Event; import flash.net.URLRequest; var l:Loader = new Lo

我正在构建一个FLA文件,它有一个文档类“Main”,在它的构造函数中,我告诉它跟踪(stage)。我添加了一个外部预加载程序来加载这个SWF,但是你知道吗,trace语句显示NULL

这是当前正在工作的预加载程序

import flash.display.Loader;
import flash.events.ProgressEvent;
import flash.events.Event;
import flash.net.URLRequest;

var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
l.load(new URLRequest("Main.swf"));

function onProgress(e:ProgressEvent):void {
    preloader.mask.height = (e.bytesLoaded / e.bytesTotal) * preloader.lemon.height;
}

function onComplete(e:Event):void {
    removeChildAt(0);
}
对于Main.swf本身,这里是document类:

package  {

    import Position;
    import flash.display.*;
    import flash.events.Event;

    public class Main extends MovieClip {

        public function Main():void {
            trace(stage);
        }
    }
}
////解决///
我忘了在舞台上添加这个项目,但幸运的是在菲利普的代码中我看到了这一点。因此,只要记住一旦Event.COMPLETE启动,将加载程序的内容添加到stage,否则swf的文档类将显示null。

您必须等待主类添加到stage(Event.added\u to\u stage)。预加载程序现在是舞台所有者

如果要通过加载程序加载外部SWF,则必须先等待Event.INIT,加载完成后加载程序将触发该Event.INIT,并执行加载的SWF的构造函数。如果将加载程序内容添加到显示列表中,则也会触发“添加到”阶段事件。在将显示对象添加到Stage之前,Stage属性必须为null

ldr //your loader
ldr.loaderInfo.addEventListener(Event.INIT,foo); ldr.load()

函数foo(e:事件):void{ var内容:*e.target.content; addChild(内容);
}

你必须等到你的主课被添加到舞台上(Event.added\u to\u stage)。预加载程序现在是舞台所有者

如果要通过加载程序加载外部SWF,则必须先等待Event.INIT,加载完成后加载程序将触发该Event.INIT,并执行加载的SWF的构造函数。如果将加载程序内容添加到显示列表中,则也会触发“添加到”阶段事件。在将显示对象添加到Stage之前,Stage属性必须为null

ldr //your loader
ldr.loaderInfo.addEventListener(Event.INIT,foo); ldr.load()

函数foo(e:事件):void{ var内容:*e.target.content; addChild(内容);
}

我刚刚将这一行添加到构造函数“addEventListener(Event.added_to_STAGE,go);”中,以便它调用该函数“go”,然后我在“go”中执行了跟踪语句,但仍然没有任何结果,为什么?您可以编辑跟踪STAGE所需的代码?我已经试了好几个小时了……嗯,我明白了,那么我该如何将加载程序的内容添加到显示列表中呢?我在这方面真是个傻瓜……我刚刚在构造函数“addEventListener(Event.added_to_STAGE,go);”中添加了这一行,这样它就可以调用函数“go”,然后我在“go”中做了跟踪语句,但仍然什么都没有,为什么?你可以编辑跟踪STAGE所需的代码吗?我已经试了好几个小时了……嗯,我明白了,那么我该如何将加载程序的内容添加到显示列表中呢?我真是个笨蛋。。。。