@Boon が提供した回答に加えて、これがイメージ キューの実際の設定方法です。
まず、ロードする必要があるすべての画像を格納するリストが必要です。これにより、必要な数のイメージを簡単に定義できます。「キュー」にすることができます。
var queue:Array = [
"http://interfacelift.com/wallpaper/previews/03177_orionnebulaintheinfrared@2x.jpg",
"http://interfacelift.com/wallpaper/previews/03175_purpleclouds@2x.jpg",
"http://interfacelift.com/wallpaper/previews/03173_goodmorning2013@2x.jpg"
];
次に行うことは、私たちが行っていることの「コア」メソッドと呼ぶものをセットアップすることです。次の画像の読み込みを処理し、キューが空になったときに通知します。次のようになります。
function loadNext():void
{
if(queue.length > 0)
{
// Notice here that we use .pop() on the queue, which will select and
// remove the last item from queue.
var req:URLRequest = new URLRequest( queue.pop() );
var photo:Loader = new Loader();
photo.load(req);
photo.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
}
else
{
// The queue is finished - dispatch an event or whatever you fancy to
// let the rest of the application know we're done here.
trace("Queue finished.");
}
}
そしてもちろん、ロードされた画像の完成を処理するリスナー関数です。ここで呼び出していることに注意してください。loadNext()
これは、現在ロード中のイメージが終了したときにのみ、キュー内の次のイメージのロードを開始するための鍵です。
function loadComplete(e:Event):void
{
addChild(e.target.content as Bitmap);
// Begin loading next image in the queue.
loadNext();
}
プロセスを開始するには、もちろんこれを使用します。これは、キューが空の場合はキューが終了したことをすぐに通知するか、画像を順番にロードし始めます。
// Start loading the queue.
loadNext();
追加/片付け:
このコードを再利用したり、整理したりしたい場合は、これを簡単にクラスにすることができます。クラスを呼び出すことができImageQueue
、その構造には上記のqueue
配列、loadNext()
メソッド、およびloadComplete()
メソッドが含まれます。add()
また、きれいな方法で最初にキューに画像を追加する方法も持つことができます。
これがそのクラスの基礎です。興味があれば完成させることができます。
public class ImageQueue
{
private var _queue:Array = [];
public function add(image:String):void{ }
public function loadNext():void{ }
private function _loadComplete(e:Event):void{ }
}