2007.10.05
category
comments

QueueLoaderを使って複数画像をまとめて読み込む

QueueLoaderを使うとCASAのGroupLoadみたいに複数の画像やswf、mp3をまとめて読み込むことが出来る。簡単に説明すると、_oLoaderにaddItem()で画像等を追加した後、まとめて_oLoader.execute()で読み込みを実行するだけ。このクラスの中では各画像の読み込みを「アイテム」、トータルの読み込みを「キュー」と定義しているみたい。

_oLoader.addItem()の第1引数は画像のパス、第2引数は読込み先のオブジェクト、そして第3引数はtitleというプロパティの値を設定できる。クラス内部を見てみるとtitleというプロパティだけが存在していたので他のプロパティは付け加えられないように設計されてるようだ。ということは、この値を使って各画像のローディング状態を読込み先のムービークリップに渡してローディングバーとかに反映できるのか。これは使える。

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;

//-----[初期設定]
var _oLoader:QueueLoader = new QueueLoader();
var imageNum:uint = 4;

//-----[読込画像を追加]
for(var i:uint = 0; i<imageNum; i++)
{
	var image:Sprite = new Sprite();
	image.x += 10;
	addChild(image);

	_oLoader.addItem("images/"+i+".jpg", image, {title:"Image "+i});
}

//-----[イベントリスナーの登録]
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_START, onQueueStart, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.ITEM_START, onItemStart, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.ITEM_PROGRESS, onItemProgress, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.ITEM_INIT, onItemInit, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.ITEM_ERROR, onItemError,false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_PROGRESS, onQueueProgress, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_INIT, onQueueInit, false, 0, true);

//-----[読込の開始]
_oLoader.execute();

function onQueueStart(event:QueueLoaderEvent):void
{
	trace("キューの読込開始");
}

function onItemStart(event:QueueLoaderEvent):void
{
	trace(event.title);
	trace("アイテムの読込開始");
}

function onItemProgress(event:QueueLoaderEvent):void
{
	trace("アイテムの読込中: "+Math.round(event.percentage * 100)+ "%");
}

function onQueueProgress(event:QueueLoaderEvent):void
{
	trace("キューの読込中: "+Math.round(event.queuepercentage * 100)+ "%");
}

function onItemInit(event:QueueLoaderEvent):void
{
	trace("アイテムの読込完了");
}

function onItemError(event:QueueLoaderEvent):void
{
	trace("エラー");
}

function onQueueInit(event:QueueLoaderEvent):void
{
	trace("キューの読込完了");
}

Thank you for Adams.

page 1 / 11