AIR アプリにロードする必要がある任意の数のファイルがあります。
File オブジェクトの配列を反復処理し、それぞれの File.url のローダーを作成して起動したいと考えています。
それらが完了したら (イベント COMPLETED または IOErrorEvent.IO_ERROR)、データをどこかに詰め込みたいと思います。失敗した場合は、例外レポートを作成したいと思います。イベントリスナーから File オブジェクトを参照する方法が見つかりません (確かに IO_ERROR ではありません)。
最善の方法は、ファイル情報が「ハードコーディング」されたランチャーごとに個別のイベント ハンドラーを作成することです。少なくとも、関数自体を Dictionary へのインデックスとして使用できます。
foo(fileToLoad : ファイル) : void { var theCompletedHandler : 関数 = { var theFile : ファイル = completedHandlerLookup[?????? この関数??????]; var theData : ImageData = new ImageData(theFile.url, (_loader.content as Bitmap).bitmapData); // データで何かをする 完了したHandlerLookup[??????を削除します。この関数??????]; errorHandlerLookup.findByValue(theFile) を削除します。// [原文のまま] } var theErrorHandler : 関数 = { var theFile : ファイル = errorHandlerLookup[?????? この関数??????]; // エラーを報告する errorHandlerLookup[?????? を削除します。この関数??????]; completedHandlerLookup.findByValue(theFile) を削除します。// [原文のまま] } completedHandlerLookup[theCompletedHandler] = theCompletedHandler; errorHandlerLookup[theCompletedHandler] = theErrorHandler; var theLoader : Loader = new Loader(); theLoader.addEventListener(Event.COMPLETE, theCompletedHandler); theLoader.addEventListener(IOErrorEvent.IO_ERROR, theErrorHandler); theLoader.load(新しい URLRequest(fileToLoad.url));
event.currentTaget を使用して、Loader インスタンスをインデックスとして使用できますか? それには奇妙な依存関係がありますか?
乾杯