2012-02-09 6 views
1

エラー#2044:未処理のIOErrorEventというエラーのために、フレックスプロンプトでファイルをロードしています。 text =エラー#2124:ロードされたファイルは不明なタイプです。 私はこのエラーが発生したときに何かする必要があります私は関数を呼び出すしたいです。 私はtry catchブロックでエラーが発生するコードのブロックを入れます。 しかし、エラーが発生した場合、それは捕まえられません。 以下はコードのスニペットです。同期および非同期:それを処理する方法 フレックスによるエラー処理

try { 
    var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler); 
    loader.loadBytes(fileReferance.data); 
} 
catch(err:*) { 
    functionTocall(fileReferance); 
} 

...

答えて

6

は、フラッシュ内のエラーの2種類があります。同期エラーはtry..catchブロックで処理できます。このようなエラーは、コードの実行が失敗したときにすぐにスローされます。しかし、非同期エラーがスローされると、正確に知ることができません。非同期エラーを処理しようとしています。だから、あなたがそれをやっているようにそれを捕まえることができないのです。
IOErrorEventのイベントリスナーを追加する必要があります。

loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError); 
... 
private function onIOError(e:IOErrorEvent) { 
    .... 
} 
0

だけIOErrorEventのために待機している別のリスナーを追加します

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler); 
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler); 
loader.loadBytes(fileReferance.data); 

それ

です