複製點陣圖資料Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本 若要將某個影像中點陣圖資料複製到另一個影像中,您可以使用數種方法:clone()、copyPixels()、copyChannel() 和 draw()。 如其名稱所建議,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() 方法會從來源 Sprite、影片片段或其它顯示物件,將圖像內容繪製 (或顯示) 到新點陣圖。使用 matrix、colorTransform、blendMode 以及目標 clipRect 參數,您就可以修改顯示新點陣圖的方式。此方法會使用 Flash Player 或 AIR 中的向量描繪器來產生資料。 當您呼叫 draw() 時,可以將來源物件 (Sprite、影片片段或其它顯示物件) 當做第一個參數傳遞,如以下所示: myBitmap.draw(movieClip); 如果來源物件在起初載入之後套用了任何變形 (顏色、矩陣等等),並不會將這些變形複製到新物件。如果您要將變形複製到新點陣圖,則需要將 transform 屬性的值從原始物件複製到使用新 BitmapData 物件的 Bitmap 物件之 transform 屬性。 |
|