现象:
当尝试给两个不同的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"/>