我正在 AS3 中编写一个内联函数作为 Loader 类的事件处理程序,我遇到的问题是在这个内联函数中它需要访问函数范围之外的变量。
这是我运行的代码:
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 类加载的新显示对象的原始显示对象的高度和宽度。
如何在函数范围之外访问这些变量或将它们传递给函数?