2012-03-13 58 views
0

我想在ActionScript3中加載一個大的XML提要。問題是進度事件表明bytesTotal爲零,這導致無限的加載順序。完整的處理程序從不觸發。無限文件大小加載as3

這是做什麼。

loader = new Loader(); 
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadDone); 
     loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, dataAnalyzeProgress) 
     loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, io_error); 

     var urlRequest:URLRequest = new URLRequest(url); 
     loader.load(urlRequest); 


protected function io_error(event:IOErrorEvent):void 
    { 
     trace("IO ERROR") 
     trace(event.text) 

    } 

    protected function loadDone(event:Event):void 
    { 
     trace('DATA COMPLETE') 

     trace(event.target.content) 

    } 

    protected function dataAnalyzeProgress(e:ProgressEvent):void 
    { 
     trace((e.bytesLoaded/e.bytesTotal) *100+"%");  
     trace("Downloaded " + e.bytesLoaded + " out of " + e.bytesTotal + " bytes");  


     if(e.bytesTotal == 0) 
     { 
      loader.close(); 
     } 
    } 

有人對此問題有解決方案。我試着首先通過curl加載它,但仍然是同樣的問題...

+0

爲什麼在進度事件期間關閉加載器? – zzzzBov 2012-03-13 15:50:47

+0

如果無法使用curl/wget加載文件,那麼這可能不是AS3問題。而不是你應該檢查服務器。 – taskinoor 2012-03-13 15:55:11

+0

這是沒有必要的,但我這樣做關閉te連接,但沒有loader.close,它不會工作要麼 – user1266573 2012-03-13 15:56:54

回答

1

您需要使用URLLoader類加載xml數據,而不是LoaderLoader類用於加載SWF和圖片(JPG,PNG,GIF)。嘗試以下行:

var loader:URLLoader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, loadDone); 
loader.addEventListener(ProgressEvent.PROGRESS, dataAnalyzeProgress) 
loader.addEventListener(IOErrorEvent.IO_ERROR, io_error); 

var urlRequest:URLRequest = new URLRequest(url); 
loader.load(urlRequest); 
+0

感謝您的幫助!它解決了我的問題! – user1266573 2012-03-14 08:06:50