多个Image无法正确显示同一个Bitmap

 现象:

当尝试给两个不同的Image控件赋予同一个Bitmap对象时,两个Image中总有一个无法显示,变成完全的空白. 最后我证明出的结果是, 无论你有多少个Image,最终只有其中一个Image可以显示出图片,其他都是空白.

	<fx:Script>
		<![CDATA[		
			[Bindable]
			public var img:Object;

			protected function loadHandler():void
			{
				// newImage 是我生成新的Bitmap对象的控件
				img = newImage.imageSource;
			}
		]]>
	</fx:Script>
	<s:layout>
		<s:HorizontalLayout/>
	</s:layout>
	<editableImage:EditableImage id="newImage" />
	<s:Button click="loadHandler()"/>
	<mx:Image source="{img}" maintainAspectRatio="false" />
	<mx:Image source="{img}" maintainAspectRatio="false"/>

如上所示, 我试图把同一个Bitmap对象绑定到不同的两个Image组件,但结果是其中一个无法显示.

原因:

不详

方法:

用相同的BitmapData 生成不同的Bitmap对象再赋予给不同的Image, 达到在不同的Image组件显示同一张图片的效果.

	<fx:Script>
		<![CDATA[
			protected function loadHandler():void
			{
				img = newImage.imageSource;
			}
			
			[Bindable]
			public var img:Object;

			
			private function copy(value:Object):Object{
				if(value is Bitmap){
					return new Bitmap((Bitmap(value)).bitmapData);
				} else{
					return value;
				}
			}

		]]>
	</fx:Script>
	<s:layout>
		<s:HorizontalLayout/>
	</s:layout>
	<editableImage:EditableImage id="newImage"/>
	<s:Button click="loadHandler()"/>
	<mx:Image source="{img}" maintainAspectRatio="false" />
	<mx:Image source="{copy(img)}" maintainAspectRatio="false"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值