2010-02-16 25 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

相關問題