2010-02-16 59 views
0

我有2个SWFLoaders像这样:这里软硬度:复制加载图像的位图数据到另一个的SWFLoader

<mx:SWFLoader width="10" height="10" complete="imageLoaded()" id="ldr_src" source="img.jpg" scaleContent="true"/> 
<mx:SWFLoader id="ldr_target" scaleContent="true"/> 

private function imageLoaded():void{ 
    var bm:Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(ldr_src); 
    ldr_target.source = bm; 
} 

一切正常,除了一件点点小事情:

我负载大小的图像ldr_src中的100x100(10x10)。位图被复制到ldr_target中,但出现意外的结果。我会想到一个10x10大小的加载图像将被复制。相反,从加载图像的(0,0)到(10,10)的位图被复制到目标。

无论图像的实际大小如何,我如何复制由swfLoader缩小的大小的bitmapData?

回答

2

通行证image.contentImageSnapshot.captureBitmapData,然后确保ldr_target的宽度/高度设置等于源:

<mx:SWFLoader width="10" height="10" complete="imageLoaded()" id="ldr_src" source="img.jpg" scaleContent="true"/> 
<mx:SWFLoader width="10" height="10" id="ldr_target" scaleContent="true"/> 

private function imageLoaded():void 
{ 
    var bm:Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(ldr_src.content)); 
    ldr_target.source = bm; 
}   

兰斯

+0

感谢这么多DisplayObject的快照答案,你救了我的一天! :) – Yeti 2010-02-16 04:26:50

+0

不错,很好听! – 2010-02-16 05:02:22

0

我试图做同样的事情,但与视频来源而不是图像。像魅力一样工作,谢谢。 (出于某种原因,“将ImageSnapshot”级是Adobe的一个非常良好的保密。)

0

您还可以使用BitmapData.draw方法来获得实现的IBitmapDrawable

相关问题