1.ドキュメントクラスでBgクラスをインスタンス化
2.Bgクラスでjpeg画像読み込み
3.画像読み込み中は進捗をテキストで0~100%表示
2.Bgクラスでjpeg画像読み込み
3.画像読み込み中は進捗をテキストで0~100%表示
Bg.as
package {Loading.as
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;
import flash.net.URLRequest;
public class Bg extends Sprite{
// プロパティ
private var _loading:Loading = new Loading();
private var _imgUrl:String = "img/bg.jpg";
private var _imgUrlReq:URLRequest = new URLRequest(_imgUrl);
private var _imgLdr:Loader = new Loader();
// コンストラクタ
public function Bg():void {
// ローディングセット
addChild(_loading);
// 画像読込
_imgLdr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler);
_imgLdr.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
_imgLdr.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);
_imgLdr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
_imgLdr.load(_imgUrlReq);
}
// 画像読込中
private function progressHandler(evt:Event):void{
var _rate:String=Math.floor((evt.bytesLoaded*100)/evt.bytesTotal) + "%";
_loading.loadingText(_rate);
}
// 画像読込完了
private function completeHandler(evt:Event):void{
var _loadFile:Bitmap = evt.target.content;
_loading.loadingText("complete!");
removeChild(_loading);// ローディング削除
addChild(_loadFile);// 画像セット
removeEvent();
}
// セキュリティエラー
private function securityErrorHandler(evt:Event):void{
_loading.loadingText("security error");
removeEvent();
}
// IOエラー
private function ioErrorHandler(evt:Event):void{
_loading.loadingText("io error");
removeEvent();
}
// イベントリスナー解放
private function removeEvent():void{
_imgLdr.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,progressHandler);
_imgLdr.contentLoaderInfo.removeEventListener(Event.COMPLETE,completeHandler);
_imgLdr.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);
_imgLdr.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
}
}
}
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class Loading extends Sprite{
// プロパティ
private var _testF:TextField = new TextField();
// コンストラクタ
public function Loading():void {
this.addChild(_testF);
_testF.autoSize = TextFieldAutoSize.LEFT;
_testF.textColor = "0xFF3300";
_testF.text = "読込開始";
}
// パーセント表示
public function loadingText(_loadingText:String):void{
_testF.text = _loadingText;
}
}
}