ActionScript检索Loader图像的宽度/高度

时间:2010-06-08 14:25:05

标签: actionscript-3

我正在尝试访问通过自定义LoadImage类添加到舞台的图像的宽度和高度。即使图像显示正确,跟踪结果也为0。有什么问题?

//frame script

var image:LoadImage = new LoadImage("myImage.jpeg");
addChild(image);
trace(image.width);  //returns 0

//-------------------------

package
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;

public class LoadImage extends Sprite
    {
    public function LoadImage(imageURL:String)
        {
        //Load Image
        var imageLoader:Loader = new Loader();
        imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageHandler);
        imageLoader.load(new URLRequest(imageURL));
        }

    private function imageHandler(evt:Event):void
        {
        addChild(evt.target.content);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

如果您在实例化后立即尝试访问它,则无法访问它的属性。你必须让它成为事件驱动的:

 class LoadImage loads image
 frame script listens for a complete event from LoadImage 
 LoadImage loads the image, once it has it's hands on it it dispatches the event
 frame script works with the data 

你需要在LoadImage中创建一个事件,一旦在imageHandler中完成,就派遣它。制作新的LoadImage时,请设置监听器

var image:LoadImage = new LoadImage("myImage.jpeg");
image.addEventListener("complete", loadedImage); //or whatever you call the event

function loadedImage(evt:Event) {
   addChild( evt.target );
   trace(evt.target.content.width);  //returns 0
}

答案 1 :(得分:0)

你想在图片完全加载之前获得宽度和高度吗?有关详细信息,请参阅this question