| window.runtime 属性 | window.runtime.flash.geom.Matrix |
| 继承 | Matrix Object |
| 运行时版本: | 1.0 |
matrix 属性,然后应用该 Transform 对象作为显示对象的 transform 属性。这些转换函数包括平移(x 和 y 重新定位)、旋转、缩放和倾斜。
这些转换类型统称为仿射转换。仿射转换在转换时保持线条笔直,因此平行线保持平行。
若要对显示对象应用转换矩阵,请创建一个 Transform 对象,将其 matrix 属性设置为转换矩阵,然后将显示对象的 transform 属性设置为 Transform 对象。Matrix 对象也被用作某些方法的参数,例如以下方法:
draw() 方法beginBitmapFill() 方法、beginGradientFill() 方法或 lineGradientStyle() 方法转换矩阵对象为具有如下内容的 3 x 3 的矩阵:
在传统的转换矩阵中,u、v 和 w 属性具有其它功能。Matrix 类只能在二维空间中操作,因此始终假定属性值 u 和 v 为 0.0,属性值 w 为 1.0。矩阵的有效值如下:
您可以获取和设置 Matrix 对象的全部六个其它属性的值:a、b、c、d、tx 和 ty。
Matrix 类支持四种主要类型的转换:平移、缩放、旋转和倾斜。您可以使用特定的方法来设置这些转换的其中三个,如下表中所述:
| 转换 | 方法 | 矩阵值 | 显示结果 | 说明 |
|---|---|---|---|---|
| 平移(置换) |
translate(tx, ty)
|
|
| 将图像 tx 像素向右移动,将 ty 像素向下移动。 |
| 缩放 |
scale(sx, sy)
|
|
| 将每个像素的位置乘以 x 轴的 sx 和 y 轴的 sy,从而调整图像的大小。 |
| 旋转 |
rotate(q)
|
|
| 将图像旋转一个以弧度为单位的角度 q。 |
| 倾斜或剪切 | 无;必须设置属性 b 和 c
|
|
| 以平行于 x 轴或 y 轴的方向逐渐滑动图像。Matrix 对象的 b 属性表示斜角沿 y 轴的正切;Matrix 对象的 c 属性表示斜角沿 x 轴的正切。 |
每个转换函数都将更改当前矩阵的属性,所以您可以有效地合并多个转换。为此,请先调用多个转换函数,再将矩阵应用于其显示对象目标(通过使用该显示对象的 transform 属性)。
使用 new Matrix() 构造函数创建 Matrix 对象后,才能调用 Matrix 对象的方法。
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| a : Number
缩放或旋转图像时影响像素沿 x 轴定位的值。 | Matrix | ||
| b : Number
旋转或倾斜图像时影响像素沿 y 轴定位的值。 | Matrix | ||
| c : Number
旋转或倾斜图像时影响像素沿 x 轴定位的值。 | Matrix | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| d : Number
缩放或旋转图像时影响像素沿 y 轴定位的值。 | Matrix | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| tx : Number
沿 x 轴平移每个点的距离。 | Matrix | ||
| ty : Number
沿 y 轴平移每个点的距离。 | Matrix | ||
| 方法 | 定义方 | ||
|---|---|---|---|
使用指定参数创建新的 Matrix 对象。 | Matrix | ||
返回一个新的 Matrix 对象,它是此矩阵的克隆,带有与所含对象完全相同的副本。 | Matrix | ||
将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。 | Matrix | ||
包括用于缩放、旋转和转换的参数。 | Matrix | ||
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
创建 Graphics 类的 beginGradientFill() 和 lineGradientStyle() 方法所需的矩阵的特定样式。 | Matrix | ||
如果给定预转换坐标空间中的点,则此方法返回发生转换后该点的坐标。 | Matrix | ||
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
identity():void
为每个矩阵属性设置一个值,该值将导致 null 转换。 | Matrix | ||
invert():void
执行原始矩阵的逆转换。 | Matrix | ||
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
对 Matrix 对象应用旋转转换。 | Matrix | ||
对矩阵应用缩放转换。 | Matrix | ||
![]() |
设置循环操作动态属性的可用性。 | Object | |
返回列出该 Matrix 对象属性的文本值。 | Matrix | ||
返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果。 | Matrix | ||
沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定。 | Matrix | ||
![]() | valueOf():Object
返回指定对象的原始值。 | Object | |
| a | 属性 |
var a:Number| 运行时版本: | 1.0 |
缩放或旋转图像时影响像素沿 x 轴定位的值。
myMatrix 并设置它的 a 值。
var myMatrix = new air.Matrix(); air.trace(myMatrix.a); // 1 myMatrix.a = 2; air.trace(myMatrix.a); // 2
| b | 属性 |
var b:Number| 运行时版本: | 1.0 |
旋转或倾斜图像时影响像素沿 y 轴定位的值。
myMatrix 并设置它的 b 值。
var myMatrix = new air.Matrix(); air.trace(myMatrix.b); // 0 var degrees = 30; var radians = (degrees/180) * Math.PI; myMatrix.b = Math.tan(radians); air.trace(myMatrix.b); // 0.5773502691896257
| c | 属性 |
var c:Number| 运行时版本: | 1.0 |
旋转或倾斜图像时影响像素沿 x 轴定位的值。
myMatrix 并设置它的 c 值。
var myMatrix = new air.Matrix(); air.trace(myMatrix.c); // 0 var degrees = 30; var radians = (degrees/180) * Math.PI; myMatrix.c = Math.tan(radians); air.trace(myMatrix.c); // 0.5773502691896257
| d | 属性 |
var d:Number| 运行时版本: | 1.0 |
缩放或旋转图像时影响像素沿 y 轴定位的值。
myMatrix 并设置它的 d 值。
var myMatrix = new air.Matrix(); air.trace(myMatrix.d); // 1 myMatrix.d = 2; air.trace(myMatrix.d); // 2
| tx | 属性 |
var tx:Number| 运行时版本: | 1.0 |
沿 x 轴平移每个点的距离。
myMatrix 并设置它的 tx 值。
var myMatrix = new air.Matrix(); air.trace(myMatrix.tx); // 0 myMatrix.tx = 50; // 50 air.trace(myMatrix.tx);
| ty | 属性 |
var ty:Number| 运行时版本: | 1.0 |
沿 y 轴平移每个点的距离。
myMatrix 并设置它的 ty 值。
var myMatrix = new air.Matrix(); air.trace(myMatrix.ty); // 0 myMatrix.ty = 50; air.trace(myMatrix.ty); // 50
| Matrix | () | 构造函数 |
function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)| 运行时版本: | 1.0 |
使用指定参数创建新的 Matrix 对象。在矩阵表示法中,按如下方式组织属性:

如果不向 new Matrix() 构造函数提供任何参数,它将创建一个具有以下值的恒等矩阵:
在矩阵表示法中,恒等矩阵如下所示:

a:Number (default = 1) — 缩放或旋转图像时影响像素沿 x 轴定位的值。
| |
b:Number (default = 0) — 旋转或倾斜图像时影响像素沿 y 轴定位的值。
| |
c:Number (default = 0) — 旋转或倾斜图像时影响像素沿 x 轴定位的值。
| |
d:Number (default = 1) — 缩放或旋转图像时影响像素沿 y 轴定位的值。
| |
tx:Number (default = 0) — 沿 x 轴平移每个点的距离。
| |
ty:Number (default = 0) — 沿 y 轴平移每个点的距离。
|
Matrix() 构造函数发送参数创建 matrix_1,而通过向该构造函数发送参数创建 matrix_2。请注意,未使用参数创建的 matrix_1 将生成一个具有值 a=1、b=0、c=0、d=1、tx=0、ty=0 的恒等矩阵。
var matrix_1 = new air.Matrix(); air.trace(matrix_1); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var matrix_2 = new air.Matrix(1, 2, 3, 4, 5, 6); air.trace(matrix_2); // (a=1, b=2, c=3, d=4, tx=5, ty=6)
| clone | () | 方法 |
function clone():Matrix| 运行时版本: | 1.0 |
返回一个新的 Matrix 对象,它是此矩阵的克隆,带有与所含对象完全相同的副本。
返回Matrix — 一个 Matrix 对象。
|
| concat | () | 方法 |
function concat(m:Matrix):void| 运行时版本: | 1.0 |
将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。在数学术语中,将两个矩阵连接起来与使用矩阵乘法将它们结合起来是相同的。
例如,如果矩阵 m1 使用系数 4 缩放某个对象,而矩阵 m2 使用 1.5707963267949 弧度 (Math.PI/2) 旋转该对象,则 m1.concat(m2) 会将 m1 转换为一个使用系数 4 缩放对象并使用 Math.PI/2 弧度旋转该对象的矩阵。
此方法将源矩阵替换为连接矩阵。如果要在不更改两个源矩阵中的任何一个的情况下连接这两个矩阵,则可以通过使用 clone() 方法首先复制源矩阵,如“类示例”部分中所示。
参数
m:Matrix — 要连接到源矩阵的矩阵。
|
| createBox | () | 方法 |
function createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void| 运行时版本: | 1.0 |
包括用于缩放、旋转和转换的参数。当应用于矩阵时,该方法会基于这些参数设置矩阵的值。
通过使用 createBox() 方法,您可以获得与依次应用 identity()、rotate()、scale() 和 translate() 方法时得到的矩阵相同的矩阵。 例如,mat1.createBox(2,2, ,Math.PI/4, 100, 100) 具有与如下所示代码相同的效果:
var mat1 = new air.Matrix();
mat1.identity();
mat1.rotate(Math.PI/4);
mat1.scale(2, 2);
mat1.translate(10, 20);
参数
scaleX:Number — 水平缩放所用的系数。
| |
scaleY:Number — 垂直缩放所用的系数。
| |
rotation:Number (default = 0) — 旋转量(以弧度为单位)。
| |
tx:Number (default = 0) — 沿 x 轴向右平移(移动)的像素数。
| |
ty:Number (default = 0) — 沿 y 轴向下平移(移动)的像素数。
|
| createGradientBox | () | 方法 |
function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void| 运行时版本: | 1.0 |
创建 Graphics 类的 beginGradientFill() 和 lineGradientStyle() 方法所需的矩阵的特定样式。宽度和高度被缩放为 scaleX/scaleY 对,而 tx/ty 值偏移了宽度和高度的一半。
例如,假设渐变具有以下特性:
GradientType.LINEAR[0, 255])SpreadMethod.PADInterpolationMethod.LINEAR_RGB下图显示了使用 createGradientBox() 方法以不同参数设置在其中定义矩阵的渐变:
createGradientBox() 设置 | 生成的渐变 |
|---|---|
width = 25;
height = 25;
rotation = 0;
tx = 0;
ty = 0; | ![]() |
width = 25;
height = 25;
rotation = 0;
tx = 25;
ty = 0; | ![]() |
width = 50;
height = 50;
rotation = 0;
tx = 0;
ty = 0; | ![]() |
width = 50;
height = 50;
rotation = Math.PI / 4; // 45 degrees
tx = 0;
ty = 0; | ![]() |
参数
width:Number — 渐变框的宽度。
| |
height:Number — 渐变框的高度。
| |
rotation:Number (default = 0) — 旋转量(以弧度为单位)。
| |
tx:Number (default = 0) — 沿 x 轴向右平移的距离(以像素为单位)。此值将偏移 width 参数的一半。
| |
ty:Number (default = 0) — 沿 y 轴向下平移的距离(以像素为单位)。此值将偏移 height 参数的一半。
|
| deltaTransformPoint | () | 方法 |
function deltaTransformPoint(point:Point):Point| 运行时版本: | 1.0 |
如果给定预转换坐标空间中的点,则此方法返回发生转换后该点的坐标。与使用 transformPoint() 方法应用的标准转换不同,deltaTransformPoint() 方法的转换不考虑转换参数 tx 和 ty。
参数
point:Point — 想要获得其矩阵转换结果的点。
|
Point — 由应用矩阵转换所产生的点。
|
| identity | () | 方法 |
function identity():void| 运行时版本: | 1.0 |
为每个矩阵属性设置一个值,该值将导致 null 转换。通过应用恒等矩阵转换的对象将与原始对象完全相同。
调用 identity() 方法后,生成的矩阵具有以下属性:a=1、b=0、c=0、d=1、tx=0 和 ty=0。
在矩阵表示法中,恒等矩阵如下所示:

| invert | () | 方法 |
function invert():void| 运行时版本: | 1.0 |
执行原始矩阵的逆转换。您可以将一个逆矩阵应用于对象来撤消在应用原始矩阵时执行的转换。
| rotate | () | 方法 |
function rotate(angle:Number):void| 运行时版本: | 1.0 |
对 Matrix 对象应用旋转转换。
rotate() 方法将更改 Matrix 对象的 a、b、c 和 d 属性。在矩阵表示法中,当前矩阵与以下矩阵连接也产生同样的结果:

参数
angle:Number — 以弧度为单位的旋转角度。
|
| scale | () | 方法 |
function scale(sx:Number, sy:Number):void| 运行时版本: | 1.0 |
对矩阵应用缩放转换。x 轴乘以 sx,y 轴乘以 sy。
scale() 方法将更改 Matrix 对象的 a 和 d 属性。在矩阵表示法中,当前矩阵与以下矩阵连接也产生同样的结果:

参数
sx:Number — 用于沿 x 轴缩放对象的乘数。
| |
sy:Number — 用于沿 y 轴缩放对象的乘数。
|
| toString | () | 方法 |
function toString():String| 运行时版本: | 1.0 |
返回列出该 Matrix 对象属性的文本值。
返回String — 一个字符串,它包含 Matrix 对象的属性值:a、b、c、d、tx 和 ty。
|
| transformPoint | () | 方法 |
function transformPoint(point:Point):Point| 运行时版本: | 1.0 |
返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果。
参数
point:Point — 想要获得其矩阵转换结果的点。
|
Point — 由应用矩阵转换所产生的点。
|
| translate | () | 方法 |
function translate(dx:Number, dy:Number):void| 运行时版本: | 1.0 |
沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定。
参数
dx:Number — 沿 x 轴向右移动的量(以像素为单位)。
| |
dy:Number — 沿 y 轴向下移动的量(以像素为单位)。
|