0

サムネイルと完全な画像を 1 つずつループで読み込む画像ギャラリー クラスがあります。次に、配列にプッシュし、各ビットマップで 1 つのムービー クリップを作成します。それはうまくいっています。

このプロセスの一部で、ギャラリー全体を表示する前に、すべての画像をプリロードできますか?

ありがとう!

4

1 に答える 1

1

個人的には、素晴らしいBulkLoaderライブラリの大ファンです。

  • 信じられないほど柔軟です
  • 読み込まれたアセットにアクセスするための便利なヘルパーを提供します (たとえば、getBitmap("asset_id") は型指定されたオブジェクトを返します)。
  • 進行状況に関する意味のあるフィードバックを提供します (サイズが大幅に異なる可能性がある個々のファイルからの生の値とは対照的に、全体的な「重み」によって進行状況を反映する値をオプションで返すことができます)。
  • 同時ロードを処理します (これは、順番にロードするよりも明らかに高速です)。

または、独自のソリューションをロールスルーする場合は、ループするときに、イベント リスナーを

Event.COMPLETE
通知。このイベントのハンドラーでカウンターをインクリメントします。このカウンターが、すべてのアセットをロードした要素の数と等しくなると。

擬似コード:

var loadCounter:int = 0;

var img_arr:Array = [
    "img1_thumb.jpg", "img1.jpg", 
    "img2_thumb.jpg", "img2.jpg", 
    ... 
];
var image_num:int = img_arr.length;

var ldr:Loader;
var req:URLRequest;
var path:String;
var i:int   = 0;
for(; i < image_num; i++) 
{
     path = "http://myserver.com/images/" + img_arr[i];
     req  = new URLRequest(path);
     ldr  = new Loader();
     ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoadComplete);
     ldr.load(req);
}

private function _onLoadComplete(event:Event):void
{
    if(++loadCounter == image_num)
    {
        // do whatever you need to your loaded assets
    }
}
于 2009-10-01T12:15:28.587 に答える