如何从mx:image组件复制或复制bitmapdata?
我需要在我的应用程序的多个屏幕中显示相同的图像,并且不想多次下载图像。
我可以使用urlrequest将图像作为位图下载并复制,但我喜欢你可以设置图像组件的来源。
答案 0 :(得分:5)
Image
扩展SWFLoader
,其中content property将包含已加载的Bitmap
对象。等待图像加载,将内容转换为Bitmap并读取其bitmapData
public function imageLoadCompleteHandler(e:Event):void
{
var bitmap:Bitmap = img.content as Bitmap;
if(bitmap == null) {
trace("loaded content is not an image");
return;
}
bmpData = bitmap.bitmapData;
//hurray..!
}
答案 1 :(得分:0)
实际上在看完上面的信息后(尝试了一下)我认为这是错误的。完整的监听器在我的第二个图像上触发,所以我猜它正在加载它两次。哦,好吧。
我无法放置整个Flex文档,但这似乎有效。我将它添加到Application标签:applicationComplete =“Run();”
以下内容包含在mx:Script标记中:
import mx.controls.Image;
private function Run():void
{
var i:Image = new Image();
i.source = first.source;
addChild(i);
}
这只是脚本标记之外的图像:
<mx:Image x="12" y="125" source="e53c04a51d5992fb77ab1e20c45ddc9f.jpeg" id="first" />
我在设置了i源后也尝试了这个:
first.source = null;
只是看看会发生什么,i图像保留了它的来源