Loaderクラスはswfやjpg,gifなどの外部ファイルを読み込むクラス。読み込まれた画像を子として持つことができるが子はひとつのみしか持つことができない。(つまり画像を同時に複数表示させたい場合はその都度Loaderオブジェクトを作成する)
// Loaderオブジェクトの作成
var my_loader:Loader = new Loader();
これだけでは何も表示はされず、画像を読み込むことで初めて表示される。画像表示までの手順。
- Loaderクラス(オブジェクト)を作成
- URLRequestクラスでファイルのパスを取得する
- Loader.load()メソッドで画像を読み込む(引数には2で取得したurlを入れる)
- addChildメソッドで配置する
var my_loader:Loader = new Loader(); //Loaderオブジェクトの作成
var my_url:URLRequest = new URL Request(“sample.jpg”); //画像のパスを取得
my_loader.load(my_url); //作成したLoaderオブジェクトに画像を読み込む
addChild(my_loader); //オブジェクトを配置
Loaderオブジェクトの子として読み込まれたファイルのプロパティを設定するにはLoader.contentプロパティを、ファイルサイズや幅などオブジェクトの情報を取得するにはLoader.contentLoaderInfoプロパティにアクセスする。ただし、読み込みが完了していないオブジェクトのプロパティにアクセスをしようとするとエラーになる。
// 読み込まれたオブジェクトにアクセスしてみる
trace(my_loader.content ); // 出力:null
my_loader.content.alpha = 0.9; // 出力:Error
そこで、読み込みの完了時に送出されるイベントリスナーを登録する。(Event.COMPLETE)
読み込みの最中に一定の間隔(どのくらいかは解らない)で送出されるイベントリスナー(ProgressEvent.PROGRESS)
ProgressEventは読み込み状況を監視、参照する場合などに頻繁に利用される。
また、読み込み開始時に何らかの処理を行う場合も同様に読み込み開始時に送出されるイベントリスナーを登録する(Event.INIT)
my_loader.contentLoaderInfo.addEventListener(Event.INIT,loadInit);
my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete);
// 読み込み開始時のイベント
function loadInit (event:Event) :void {
trace(“読み込み開始”);
}
// 読み込み完了時のイベント
function loadComplete (event:Event) :void {
trace(“読み込み完了”);
}
イベントリスナーはLoaderオブジェクトではなく、contentLoaderInfoオブジェクトからリスナー登録をするので注意。