若要將一個影像中的點陣圖資料複製到另一個影像中,您可以使用數種方法:
clone()
、
copyPixels()
、
copyChannel()
、
draw()
和
drawWithQuality()
(
drawWithQuality
方法可以在 Flash Player 11.3 及更新版本,以及 AIR 3.3 及更新版本中取得)。
如其名稱所建議,
clone()
方法可讓您將點陣圖資料從某個 BitmapData 物件複製或取樣到另一個 BitmapData 物件。呼叫這個方法時,它會傳回新的 BitmapData 物件,此物件是與原始實體完全相同的副本。
下列範例會複製橘色 (父輩) 矩形的副本,並將此副本置於原始父輩矩形旁邊:
import flash.display.Bitmap;
import flash.display.BitmapData;
var myParentSquareBitmap:BitmapData = new BitmapData(100, 100, false, 0x00ff3300);
var myClonedChild:BitmapData = myParentSquareBitmap.clone();
var myParentSquareContainer:Bitmap = new Bitmap(myParentSquareBitmap);
this.addChild(myParentSquareContainer);
var myClonedChildContainer:Bitmap = new Bitmap(myClonedChild);
this.addChild(myClonedChildContainer);
myClonedChildContainer.x = 110;
copyPixels()
方法是一種既快速又簡單的方式,可以從某個 BitmapData 物件將像素複製到另一個 BitmapData 物件。該方法會拍攝來源影像的矩形快照 (由
sourceRect
參數所定義),並將它複製到另一個矩形區域 (大小相等)。新「貼上」的矩形位置是在
destPoint
參數中加以定義。
copyChannel()
方法會從來源 BitmapData 物件取樣預先定義的顏色色版值 (Alpha、紅色、綠色或藍色),並將它複製到目標 BitmapData 物件的色版中。呼叫此方法並不會影響目標 BitmapData 物件中的其它色版。
draw()
和
drawWithQuality()
方法會從來源 Sprite、影片片段或其他顯示物件,將圖像內容繪製或顯示到新點陣圖。使用
matrix
、
colorTransform
、
blendMode
以及目標
clipRect
參數,您就可以修改顯示新點陣圖的方式。此方法會使用 Flash Player 或 AIR 中的向量描繪器來產生資料。
當您呼叫
draw()
或
drawWithQuality()
時,可以將來源物件 (Sprite、影片片段或其他顯示物件) 當做第一個參數傳遞,如以下所示:
myBitmap.draw(movieClip);
如果來源物件在起初載入之後套用了任何變形 (顏色、矩陣等等),並不會將這些變形複製到新物件。如果您要將變形複製到新點陣圖,則需要將
transform
屬性的值從原始物件複製到使用新 BitmapData 物件的 Bitmap 物件之
transform
屬性。