Actionscript 3 加载外部SWF和FD的最新版本
(我与FlashDevelop合作) 我在项目中加载一些外部SWF时遇到问题。直到几个月前,他们将预加载集成切换为: [框架(factoryClass=“预加载”)] 从那时起,我用Loader()加载的swf就不显示了 你知道是什么改变了吗 谢谢 代码: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
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的方式有关。没有理由认为预加载方法的更改会影响进一步的加载。也许你以某种方式破坏了预加载程序-你能展示这个类(和预加载程序)的完整代码吗?我不认为预加载程序行是问题所在。当唯一改变的是这一行时^^