2011-03-30 166 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