Flash 外部预加载程序导致类型错误
我正在构建一个FLA文件,它有一个文档类“Main”,在它的构造函数中,我告诉它跟踪(stage)。我添加了一个外部预加载程序来加载这个SWF,但是你知道吗,trace语句显示NULL 这是当前正在工作的预加载程序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
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所需的代码吗?我已经试了好几个小时了……嗯,我明白了,那么我该如何将加载程序的内容添加到显示列表中呢?我真是个笨蛋。。。。