AS3 には、リクエストに応じて画像をロードする外部クラス ImageLoader があります。そのクラスには、イベント ハンドラーがあります。
ImageLoader クラス
public function loadImg(path:String):void
{
ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, getProgress);
var req:URLRequest = new URLRequest(path);
ldr.load(req);
}
private function getProgress(e:Event):void
{
dispatchEvent(new Event("PROGRESS_INFO"));
}
ダウンロードの進行状況の更新をメインのドキュメント クラスに送り返して画面に表示しようとしているので、イベント "PROGRESS_INFO" をディスパッチして、渡されたイベント オブジェクトから情報を取得しようとしています。
ドキュメント クラス
private function getProgressInfo(e:Event):void
{
trace(e.target.bytesTotal);
}
ただし、これは無駄であることが証明されています... IMageLoader クラスから進行状況情報を取得する方法についてのアイデアはありますか?
注: パブリック変数に bytesLoaded と bytesTotal を追加できることはわかっていますが、それでは、ProgressEvent クラスで bytesLoaded プロパティの更新を確認する利点が得られません。何か案は?