FirefoxでファイルI/Oが中断する

現象


FirefoxでのみFlashで行われる画像の読み込みが中断しているようで
一部の画像が抜け落ちた状態で終わったりする


IOErrorEventハンドラを設定してもイベントは起きない
たぶん読み込めないままCompleteハンドラが走っている
I/Oを中断終了しているのに通知しない

対策(現在手探りで)


Loader.load()は非同期な動きをするため
try,catchによる例外処理では対処できない
メソッド自体は即終了するためI/Oタイムアウトも起きない

具体的に確認


progress系のイベントを監視して途中で終了していないか監視する

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loader.load(request, context);

function progressHandler(e:ProgressEvent):void {
    var calc:Number = (e.bytesLoaded / e.bytesTotal) * 100;
    trace(calc + "%");
}


結果:読み込みは完了している


表示できない理由が別にありそう

解決方法


結局中断エラーを検出することはできなかったため
一定時間待機後、イメージオブジェクトが生成されない場合は自動的に再読み込み要求を発行することにした。
この辺の実装は個々で違うと思うので具体例は出しても意味がないと思うんだけど
とにかく大量のオブジェクトを読む必要がある場合(ネトゲとか?)
再読み込み要求を投げないとFirefoxでは勝手にI/Oを中断してしまうことがあることは
覚えておいた方がいい。