draw (BitmapData.draw メソッド)

public draw(source: Object , [matrix: Matrix ], [colorTransform: ColorTransform ], [blendMode: Object ], [clipRect: Rectangle ], [smooth: Boolean ]) : Void

Flash Player のベクターレンダーを使用して、ソースイメージやソースムービークリップをターゲットイメージ上に描画します。変換マトリックス、ColorTransform オブジェクト、ブレンドモード設定、およびターゲット Rectangle オブジェクトを指定することにより、レンダリングの実行方法を制御できます。必要に応じて、拡大・縮小するときにビットマップのスムージングを行うかどうかを指定することもできます。これは、ソースオブジェクトが BitmapData オブジェクトである場合にのみ機能します。

このメソッドは、オーサリングツールインターフェイス内のオブジェクトに対して標準ベクターレンダーを使用してオブジェクトを描画する方法に対応します。

ソース MovieClip オブジェクトは、この呼び出しでオンステージ変換を使用しません。ライブラリやファイル内に存在するように処理され、マトリックス変換、カラー変換、ブレンドモードはありません。独自の変換プロパティを使用してムービークリップを描画する場合は、Transform オブジェクトを使用して、各種の変換プロパティを渡すことができます。

対応バージョン : ActionScript 1.0、Flash Player 8

パラメータ

source:Object - 描画する BitmapData オブジェクト。

matrix:Matrix (オプション) - ビットマップの座標を拡大・縮小、回転、または変換する場合に使用する Matrix オブジェクト。オブジェクトが指定されていない場合、ビットマップイメージは変換されません。このパラメータを渡す必要があるが、イメージを変換したくない場合、このパラメータを、デフォルトの new Matrix() コンストラクタを使って作成される単位マトリックスに設定します。

colorTransform:ColorTransform (オプション) - ビットマップのカラー値を調整する場合に使用する ColorTransform オブジェクト。オブジェクトが指定されていない場合、ビットマップイメージのカラーは変換されません。このパラメータを渡す必要があるが、イメージを変換したくない場合、このパラメータを、デフォルトの new ColorTransform() コンストラクタを使って作成される ColorTransform オブジェクトに設定します。

blendMode:Object (オプション) - 変換のブレンドモード設定。このパラメータは 1 から 14 までの整数、またはストリング (たとえば "normal""darken") です。有効な blendMode の値については、MovieClip クラスの blendMode プロパティを参照してください。

clipRect:Rectangle (オプション) - Rectangle オブジェクト。この値を指定しない場合、切り取りは発生しません。

smooth:Boolean (オプション) - matrix パラメータに従って BitmapData オブジェクトを伸縮・回転するときにスムージング (補間) を行うかどうかを指定するブール値。デフォルト値は false です。smoothing パラメータは、source パラメータが BitmapData オブジェクトの場合にのみ適用されます。smoothingfalse に指定した場合、回転・伸縮後の BitmapData イメージの形状がギザギザになる可能性があります。たとえば、次の 2 つのイメージは source パラメータとして同じ BitmapData オブジェクトを使用しますが、左側では smoothing パラメータが true に、右側では false に設定されます。



smoothingtrue に設定してビットマップを描画する場合、smoothingfalse に設定した場合よりも長い時間がかかります。

次の例では、ソース MovieClip インスタンスから BitmapData オブジェクトに描画する方法を示します。

import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
import flash.geom.ColorTransform;

var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC);

var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc_1.attachBitmap(myBitmapData, this.getNextHighestDepth());

var mc_2:MovieClip = createRectangle(50, 40, 0xFF0000);
mc_2._x = 101;

var myMatrix:Matrix = new Matrix();
myMatrix.rotate(Math.PI/2);

var translateMatrix:Matrix = new Matrix();
translateMatrix.translate(70, 15);

myMatrix.concat(translateMatrix);

var myColorTransform:ColorTransform = new ColorTransform(0, 0, 1, 1, 0, 0, 255, 0);
var blendMode:String = "normal";

var myRectangle:Rectangle = new Rectangle(0, 0, 100, 80);
var smooth:Boolean = true;

mc_1.onPress = function() {
    myBitmapData.draw(mc_2, myMatrix, myColorTransform, blendMode, myRectangle, smooth);
}

function createRectangle(width:Number, height:Number, color:Number):MovieClip {
    var depth:Number = this.getNextHighestDepth();
    var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
    mc.beginFill(color);
    mc.lineTo(0, height);
    mc.lineTo(width, height);
    mc.lineTo(width, 0);
    mc.lineTo(0, 0);
    return mc;
}

関連項目

blendMode (MovieClip.blendMode プロパティ), ColorTransform (flash.geom.ColorTransform), Matrix (flash.geom.Matrix), Rectangle (flash.geom.Rectangle)


 

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

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001402.html