Matrix 类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。您可以对一个显示对象执行不同的图形转换,方法是设置 Matrix 对象的属性,将该 Matrix 对象应用于 Transform 对象的 matrix
属性,然后应用该 Transform 对象作为显示对象的 transform
属性。这些转换函数包括平移(x 和 y 重新定位)、旋转、缩放和倾斜。
注意:
使用 new Matrix()
构造函数创建 Matrix 对象后,才能调用 Matrix 对象的方法。
package {
import flash.geom.Matrix;
import flash.display.Sprite;
import flash.display.GradientType;
public class MatrixExample extends Sprite {
public function MatrixExample() {
var myMatrix:Matrix = new Matrix();
trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0)
myMatrix.createGradientBox(200, 200, 0, 50, 50);
trace(myMatrix.toString()); // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150)
var colors:Array = [0xFF0000, 0x0000FF];
var alphas:Array = [100, 100];
var ratios:Array = [0, 0xFF];
graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix);
graphics.lineTo(0, 300);
graphics.lineTo(300, 300);
graphics.lineTo(300, 0);
graphics.lineTo(0, 0);
}
}
}
常用的方法:
translate | () | 方法 |
public function translate(dx:Number, dy:Number):void
语言版本 : | ActionScript 3.0 |
RuntimeVersions: | AIR 1.0, Flash Player 9 |
沿 x 和 y 轴平移矩阵,由 dx
和 dy
参数指定。
参数
dx:Number — 沿 x 轴向右移动的量(以像素为单位)。 | |
dy:Number — 沿 y 轴向下移动的量(以像素为单位)。 |
scale | () | 方法 |
public function scale(sx:Number, sy:Number):void
RuntimeVersions: | AIR 1.0, Flash Player 9 |
对矩阵应用缩放转换。x 轴乘以 sx
,y 轴乘以 sy
。
scale()
方法将更改 Matrix 对象的 a
和 d
属性。在矩阵表示法中,当前矩阵与以下矩阵连接也产生同样的结果:
参数
sx:Number — 用于沿 x 轴缩放对象的乘数。 | |
sy:Number — 用于沿 y 轴缩放对象的乘数。 |
rotate | () | 方法 |