Image(SWFLoader)で読み込みエラーになったときにエラー用の画像を表示したい
ちょっとひっかかったのでメモ。
自分はImageを継承したクラス内で記述しているけど、外からでもできると思う。
まず、HTTP_STATUSイベントを待つ。
image.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHttpStatus);
onHttpStatusは次のように書く。
private function onHttpStatus(event : HTTPStatusEvent) : void { this.removeEventListener(HTTPStatusEvent.HTTP_STATUS, onHttpStatus); if (event.status == 404) { image.callLater(function() : void { image.load(e404); } ); }else{ ... } }
e404は埋め込んだ画像。別になんでもいいんだけど。
[Embed("../../../res/icon/404.jpg")] private static var e404 : Class;
で、callLaterを使うのがミソで、これを使わないとなぜかわからないがload(e404)は無視されてしまう。
これを応用すれば自動リロードもできそうだ。