[英]Loading SWF in AS3 but flash keeps repeating constructor function, what should I do?
我正在使用Loader类导入多个外部文件,其中一个是swf文件。 这样做时(我之前做过成功,所以没想到有任何问题),我遇到了各种各样的错误,最后Flash崩溃了。
我在构造函数中放了一条跟踪,它并没有跟踪一次,而是一直跟踪,这表明构造函数陷入了循环。 我猜想太多的相同swf加载是导致Flash最终崩溃的原因。
这是我的代码(swf im加载现在是一个简单的测试文件,其中包含图像而没有代码):
private var slides:Loader = new Loader();
public function DocumentClass()
{
trace(1)
slides.load(new URLRequest("Resources/Slides.swf"));
slides.contentLoaderInfo.addEventListener(Event.COMPLETE, SlidesComplete);
}
public function SlidesComplete(evt:Event):void
{
slides.contentLoaderInfo.removeEventListener(Event.COMPLETE, SlidesComplete);
addChild(slides);
}
这将跟踪“ 11111111111 ...”,并且所有内容最终都消失了。
救命!
尝试在要加载的SWF文件的顶部(在动作脚本中或在时间轴上)放置一个stop()
动作。 同时,swf 可能正在加载中,并且正在运行播放并循环运行(因此,您的代码会一遍又一遍地运行)。
我会进行进度监视,直到SWF文件完全加载,然后跳到您的显示框架:
以下是我偶尔创建的摘录:
// stop the playhead from moving ahead
stop(); // you can also use gotoAndStop("loading"); if you want
function loaderProgressHandler(event:Event):void {
// switch the framehead to main which will show your content
if(event.bytesLoaded >= event.bytesTotal) {
event.target.removeEventListener(Event.PROGRESS, this.loaderProgressHandler);
this.gotoAndStop("main");
}
}
this.loaderInfo.addEventListener(Event.PROGRESS, this.loaderProgressHandler);
希望能有所帮助 !
我只是被这个同样的问题困扰。
以我为例,问题出在与被加载的swf具有相同文档类名称的swf。
例如。 Main.as
正在加载另一个SWF文件,该SWF文件也具有名为Main.as
文档类-将其更改为其他名称可以解决无限循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.