Flex中取得Image图像原始大小

来源:互联网 发布:nodejs 商城源码 编辑:程序博客网 时间:2024/05/16 23:59

我觉得用ChangeWatcher也很简单,适用于Embed引入的图片例如:

var cw:ChangeWatcher = ChangeWatcher.watch(img, "width",   CompletePicLoad);//cw.unwatch(); 取消 private function CompletePicLoad(event:Event):void {   var img:Image=event.target as Image; trace("CompletePicLoad  Width="+img.width);  }

 

另外还有一种方法,使用于url引用的图片 

转自:http://blog.163.com/cityrock@126/blog/static/9823133920100844132572/

 

 

在程序启动后,以Img.load方法载入一个远程传递过来的图像的byte[]数组,随后通过网上的一些流行说法说是在图像的载入完成后捕获 creationComplete事件并获取image的contentwidth和contentheight值即可;实际上,多数情况下这种做法是失败的,比如当前Image的width和Height属性均为自适应宽高度,值均为"100%",那么你按照上面说法取到的数值永远都是当前包含 Image的容器的宽高值,这个问题困扰了我很久,很久很久,烧了香拜了佛,求了高人、问了google还是没有解决。最终还是自己解决了,方法超简单如下:

//先给image对象添加捕获载入完成的事件方法,这一步照上面是没有错的,

img.addEventListener(Event.COMPLETE,CompletePicLoad);

。。。

而在事件代码中,只需要重新定义一个未指定比例变化的Image对象,且不需要添加到显示中,去访问该Image的属性即可。

  private function CompletePicLoad(event:Event):void

{ //图片载入完成.
   var img:Image = event.target as Image; 
   trace(img.contentWidth);
   lblh.text = img.contentHeight.toString();
}

这其中的img.contentWidth和img.contentHeight就是被载入图片的真实尺寸。

 

 

 

 

原创粉丝点击