Flex中取得Image图像原始大小

我觉得用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就是被载入图片的真实尺寸。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值