Adobe Flex 3 ヘルプ

ビットマップデータのコピー

イメージ間でビットマップデータをコピーするには、clone()copyPixels()copyChannel()draw() などのメソッドを使用できます。

clone() メソッドを使用すると、その名が示すとおり、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 オブジェクト間でピクセルをすばやく、かつ簡単にコピーできます。このメソッドは、sourceRect パラメータで定義された、コピー元イメージの矩形のスナップショットを取得し、それを同一サイズの別の矩形領域にコピーします。新たに "ペーストされる" 矩形の場所は、destPoint パラメータで指定します。

copyChannel() メソッドは、コピー元の BitmapData オブジェクトから事前定義されたカラーチャンネル値(アルファ、赤、緑または青)をサンプリングし、それをコピー先 BitmapData オブジェクトのチャンネルにコピーします。このメソッドを呼び出しても、コピー先 BitmapData オブジェクトの他のチャンネルは影響を受けません。

draw() メソッドは、コピー元のスプライト、ムービークリップまたはその他の表示オブジェクトのグラフィックコンテンツを新しいビットマップに描画(レンダリング)します。matrixcolorTransformblendMode、コピー先 clipRect の各パラメータを使用して、新しいビットマップのレンダリング方法を変更できます。このメソッドは、Flash Player および AIR のベクターレンダラーを使用してデータを生成します。

draw() を呼び出すときは、次のように、コピー元オブジェクト(スプライト、ムービークリップまたはその他の表示オブジェクト)を最初のパラメータとして渡します。

myBitmap.draw(movieClip);

コピー元オブジェクトが最初にロードされた後で色変換やマトリックス変換などの何らかの変換が適用された場合、その変換内容は新しいオブジェクトにコピーされません。新しいビットマップに変換内容をコピーするには、元のオブジェクトの transform プロパティの値を、新しい BitmapData オブジェクトを使用する Bitmap オブジェクトの transform プロパティにコピーする必要があります。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート