Um Bitmapdaten von einem Bild in ein anderes zu kopieren, können Sie verschiedene Methoden verwenden:
clone()
,
copyPixels()
,
copyChannel()
,
draw()
und
drawWithQuality()
(die
drawWithQuality
-Methode ist ab Flash Player 11.3 und ab AIR 3.3 verfügbar).
Mit der
clone()
-Methode können Sie Bitmapdaten von einem BitmapData-Objekt in ein anderes Objekt klonen. Beim Aufruf dieser Methode wird ein neues BitmapData-Objekt zurückgegeben, das ein exakter Klon der Instanz ist, von der es kopiert wurde.
Im folgenden Beispiel wird eine Kopie eines orangefarbenen (übergeordneten) Quadrats geklont und neben dem übergeordneten Originalquadrat positioniert:
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;
Mit der
copyPixels()
-Methode können Pixel schnell und einfach von einem BitmapData-Objekt in ein anderes kopiert werden. Bei dieser Methode wird ein rechteckiger Schnappschuss (definiert durch den
sourceRect
-Parameter) des Quellbilds erstellt und in einen anderen rechteckigen Bereich (mit der gleichen Größe) kopiert. Die Position des neuen „eingefügten“ Rechtecks wird im
destPoint
-Parameter festgelegt.
Mit der
copyChannel()
-Methode wird ein vordefinierter Farbkanalwert (Alpha, Rot, Grün oder Blau) eines BitmapData-Quellobjekts in einen Kanal eines BitmapData-Zielobjekts kopiert. Der Aufruf dieser Methode wirkt sich nicht auf die anderen Kanäle im BitmapData-Zielobjekt aus.
Mit den
draw()
- und
drawWithQuality()
-Methoden wird der grafische Inhalt eines Sprite-Quellobjekts, MovieClip-Quellobjekts oder eines anderen Anzeigeobjekts in einer neuen Bitmap gezeichnet oder dargestellt. Mithilfe der Parameter
matrix
,
colorTransform
,
blendMode
und
clipRect
können Sie die Art und Weise ändern, auf die die neue Bitmap dargestellt wird. Diese Methode verwendet die Vektordarstellung in Flash Player und AIR, um die Daten zu generieren.
Beim Aufrufen von
draw()
oder
drawWithQuality()
wird das Quellobjekt (Sprite-Objekt, MovieClip-Objekt oder anderes Anzeigeobjekt) als erster Parameter übergeben, wie im Folgenden dargestellt:
myBitmap.draw(movieClip);
Wenn auf das Quellobjekt Transformationen (Farbe, Matrix usw.) angewendet wurden, nachdem es geladen wurde, werden diese Transformationen nicht in das neue Objekt kopiert. Wenn Sie die Transformationen in das neue Bitmapbild kopieren möchten, müssen Sie den Wert der
transform
-Eigenschaft des Originalobjekts in die
transform
-Eigenschaft des Bitmap-Objekts kopieren, in dem das neue BitmapData-Objekt verwendet wird.