2011-03-30 238 views
0

的最后一个版本(我用的FlashDevelop工作)加载外部SWF和FD

我有问题,在我的项目加载一些外部主权财富基金。

[帧(factoryClass =“预加载”)

从那时起我的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"); 
    } 
} 
+0

没有理由为什么预加载器方法更改会影响进一步加载。 也许你以某种方式打破了预加载器 - 你能展示这个类(和预加载器)的完整代码吗? – Philippe 2011-03-31 14:00:11

+0

我不认为preloader行是问题。事件时,唯一改变的是这一行^^ – Legogo 2011-04-01 09:41:36

回答

0

是 “COMPLETE” 越来越描绘出?我无法从你在这里发布的代码中分得太多,可能还有其他事情正在发生,特别是在Dots.swf中。

我从右边看到的一件事就是你的加载器对象可能会被垃圾收集,但如果它正在追踪“COMPLETE”,那肯定不是这种情况。尝试立即将加载器添加到显示列表,看看是否有所作为。例如:

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

我在Flash开发中做了我所有的工作,并没有遇到任何问题。如果您能够分享更多代码或示例项目,我可以进一步调查。

+0

我不认为它是垃圾收集,因为如果我将相同的代码应用到旧的SWF(用FD编译但在改变之前)它工作。 COMPLETE事件永远不会被调用。我只有从0到最大(文件大小)的进展。我认为这显然与FD编译swfs的方式有关。 – Legogo 2011-03-31 09:40:06