Loader クラスを使用して外部のファイルを読み込む場合、コンテンツの読み込み完了後であれば、座標位置やスケールといったプロパティも直接操作することができます。
ただし、読み込みが完了する前に幅や高さを指定すると画像が表示されなくなります。これは、コンテンツを読込む前に Loader クラスのインスタンスの width または height プロパティを操作すると読み込み前のサイズつまり 0 に設定されてしまうようです。
これにより、ロードされた画像は、0 × 0 ピクセルで表示されてしまっているのです。
これを回避するために次のように処理します。
Loader オブジェクトの contentLoaderInfo プロパティを参照して、 Loader.complete イベントにリスナー関数を登録し、外部のデータを読み込みが完了したことを取得します。
Loader インスタンスにロードされたコンテンツは content プロパティで参照することができます。
リスナー関数が呼出されたら、 contentプロパティを介して処理してやればよいのです。
var url:String = "sample.jpg";
var posX:Number = 0;
var posY:Number = 0;
var imgLoader:Loader = new Loader();
var imgLoaderInfo:LoaderInfo = imgLoader.contentLoaderInfo;
imgLoaderInfo.addEventListener (Event.COMPLETE , onCompleteHandler );
var urlRequest:URLRequest = new URLRequest(url);
imgLoader.load (urlRequest);
function onCompleteHandler (event:Event):void {
imgLoaderInfo.removeEventListener (Event.COMPLETE , onCompleteHandler );
addChild (imgLoader);
var loadContent:DisplayObject = imgLoader.content;
loadContent.x = posX;
loadContent.y = posY;
}
Post your comment