AS3 でローダー クラスのイベント ハンドラーとしてインライン関数を作成しています。このインライン関数では、関数のスコープ外の変数にアクセスする必要があるという問題があります。
私が実行しているコードは次のとおりです。
for(var i:uint=0;i<numChildren;i++){;
var displayObj:DisplayObject = getChildAt(i);
var displayObjWidth = displayObj.width;
if (elementname == displayObj.name)
{
var loader:Loader = new Loader();
var urlRequest:URLRequest = new URLRequest(loadURL);
loader.load( urlRequest );
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event){
var mw:Number = displayObj.width;
var mh:Number = displayObj.height;
var tempImage:Bitmap = new Bitmap(e.target.content.bitmapData);
image.bitmapData = tempImage.bitmapData;
image.width = mw;
image.height = mh;
loader.width = displayObj.width;
loader.height = displayObj.height;});
loader.x = displayObj.x;
loader.y = displayObj.y;
addChild( loader );
removeChild( displayObj );
}
この関数は、URL から画像を読み込み、一致する子要素を見つけて、既存の画像を読み込まれた新しい画像に置き換えます。
私が抱えている問題は、Loader クラスを介してロードされた新しいオブジェクトに置き換える元の表示オブジェクトの高さと幅にアクセスできることです。
関数のスコープ外でこれらの変数にアクセスしたり、関数に渡したりするにはどうすればよいですか?