2012-03-13 11 views
0

私はActionScript3内で大きなxmlフィードを読み込もうとしています。問題は、progressイベントが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(); 
     } 
    } 

誰かがこの問題の解決策を持っていますか?最初にカールでロードしようとしましたが、それと同じ問題です...

+0

なぜ進捗イベント中にローダーを終了しますか? – zzzzBov

+0

curl/wgetでファイルを読み込めない場合は、おそらくAS3の問題ではありません。サーバで確認するよりもむしろ。 – taskinoor

+0

これは必ずしも必要ではありませんが、接続を閉じるためにこれを行いましたが、loader.closeがなければどちらも動作しません – user1266573

答えて

1

URLLoaderクラスを使用すると、Loaderではなく、xmlデータをロードする必要があります。 Loaderクラスは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

関連する問題