2009-04-25(Sat) 15:58
[AS3.0]外部画像を読み込むときにローディング表示
画像読み込み時に何も表示されないのもあれなので、プログレスバーを表示させたいと思います。
準備としてはFlashで横長のMCを作ります。
今回は「ProgressBar_mc」という名前にしました。
package
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.events.Event;
public class Main extends Sprite
{
var ProgressBar:ProgressBar_mc = new ProgressBar_mc();
var imgLoader:Loader = new Loader();
//ステージセンター
var stageX:int = stage.stageWidth / 2;
var stageY:int = stage.stageHeight / 2;
public function Main() {
imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete);
imgLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadProgress);
imgLoader.load(new URLRequest("img/img01.jpg"));
}
//ローディング中の処理
private function loadProgress(e:ProgressEvent):void {
addChild(ProgressBar);
//プログレスバーの最大の長さを設定
ProgressBar.width = (e.bytesLoaded / e.bytesTotal * 200);
//プログレスバーのセンター合わせ
ProgressBar.x = stageX - 100;
ProgressBar.y = stageY - (ProgressBar.height / 2);
}
//読み込み終了後の処理
private function loadComplete(e:Event):void {
//プログレスバーを削除
removeChild(ProgressBar);
//イメージを表示
addChild(imgLoader);
//画像をセンターに合わせる
imgLoader.x = stageX - (imgLoader.width/ 2);
imgLoader.y = stageY - (imgLoader.height / 2);
}
}
}
contentLoaderInfoのPROGRESSイベントはダウンロード処理を実行中にデータを受信したときに送出されます。
あとはローディング中の処理を書くだけですね。





TrackBack URL