返回首页当前位置:首页 >> 网站建设 >> 正文

draw(BitmapData.draw 方法)

文章来自: | 发表时间:2007-11-27 15:44:38

draw(BitmapData.draw 方法)

public draw(source:Object, [matrix:Matrix], [colorTransform:ColorTransform], [blendMode:Object], [clipRect:Rectangle], [smooth:Boolean]) : Void
使用 Flash Player 矢量呈现器在目标图像上绘制源图像或影片剪辑。您可以使用 Matrix、ColorTransform、BlendMode 对象以及目标 Rectangle 对象来控制呈现的执行方式。或者,您也可以指定缩放时是否应对位图进行平滑处理。这只适用于当源对象是 BitmapData 对象时的情况。
此方法直接与如何在创作工具界面中使用对象的标准矢量呈现器来绘制图像相对应。
源 MovieClip 对象不对此调用使用其任何舞台中转换。该源 MovieClip 对象会被视为存在于库或文件中,没有矩阵转换、没有颜色转换,也没有混合模式。如果您希望通过使用影片剪辑自身的 transform 属性来绘制影片剪辑,则可以使用它的 Transform 对象来传递各种 transformation 属性。
可用性:ActionScript 1.0;Flash Player 8

参数

source:Object - 要绘制的 BitmapData 对象。
matrix:flash.geom.Matrix [可选] - 一个 Matrix 对象,用于缩放、旋转或转换位图的坐标。如果没有提供任何对象,位图图像将不转换。如果您必须传递此参数但又不希望转换图像,则可以将此参数设置为使用默认 new Matrix() 构造函数创建的恒等矩阵。
colorTransform:flash.geom.ColorTransform [可选] - 一个 ColorTransform 对象,用于调整位图的颜色值。如果没有提供任何对象,位图图像的颜色将不转换。如果您必须传递此参数但又不希望转换图像,则可以将此参数设置为使用默认 new ColorTransform() 构造函数创建的 ColorTransform 对象。
blendMode:Object [可选] - 一个 BlendMode 对象。
clipRect:flash.geom.Rectangle [可选] 一个 Rectangle 对象。如果您未提供此值,将不发生任何剪裁。
smooth:Boolean [可选] - 布尔值,确定缩放时是否要对 BitmapData 对象进行平滑处理。默认值为 false

示例

下面的示例演示如何将源 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;
}