• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ロードに失敗したら代替イメージをロードさせたい)

ロードに失敗したら代替イメージをロードさせたい

このQ&Aのポイント
  • 読み込みが終わっていないローダーの情報は表示できません。ロードに失敗した場合、代替イメージを表示する方法について教えてください。
  • myLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,function(e)の処理で「読み込みが終わっていないローダーの情報は表示できません」というエラーが発生します。このエラーを回避して代替イメージをロードさせる方法はありますか?
  • ロードに失敗した場合、例外を発生させずに代替イメージをロードする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

書かれていらっしゃるスクリプトですが, Flash Player 10 用 SWF のパブリッシュ設定だとまったくそのままでOKで無事動作します。 Flash Player 9 用 SWF のパブリッシュ設定だと, > Error: Error #2099: 読み込み中のオブジェクトは、 > 十分に読み込まれていないので、その情報を表示 > することができません。 >  at flash.display::LoaderInfo/get loader() >  at MethodInfo-1() と出ますね。 また次のようにすると,Flash Player 9 用 SWF のパブリッシュ設定でもOKです。 myLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,function(e){ e.target.removeEventListener(e.type,arguments.callee); myLoader.close(); myLoader.load(new URLRequest("dummy.jpg")); }) 結局 「e.target.loader」 の部分で詰まります。 Flash Player が e.target.loader を開示してくれませんね。 こんな逃げ方↓はどうでしょうか? -------------------------------- function setOnError(LD:Loader):void { LD.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,function(e){ LD.removeEventListener(e.type,arguments.callee); LD.close(); LD.load(new URLRequest("dummy.jpg")); }) } setOnError(myLoader); -------------------------------- 上記逃げ方の使用例↓ --------------------------------- var myLoader1:Loader = new Loader(); var myLoader2:Loader = new Loader(); function setOnError(LD:Loader):void { LD.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,function(e){ LD.removeEventListener(e.type,arguments.callee); LD.close(); LD.load(new URLRequest("dummy.jpg")); }) } setOnError(myLoader1); setOnError(myLoader2); myLoader1.load(new URLRequest("genuine1.jpg")); myLoader2.load(new URLRequest("genuine2.jpg")); addChild(myLoader1); myLoader1.x = 50; addChild(myLoader2); myLoader2.x = 100; ---------------------------------   

H240S18B73
質問者

お礼

ありがとうございます 10では動くのですね‥‥ ちょうどクラス内に引数入れて リスナー生成するための関数が用意してあるので そいつにこいつのリスナーを 作らせるようにしようと思います

関連するQ&A

専門家に質問してみよう