egret.Matrix
包 egret
类 public class Matrix
继承 egret.Matrix → egret.HashObject
Matrix 类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。您可以对一个显示对象执行不同的图形转换,方法是设置 Matrix 对象的属性,将该 Matrix对象应用于显示对象的 matrix 属性。这些转换函数包括平移(x 和 y 重新定位)、旋转、缩放和倾斜。
公共属性
属性 |
---|
a : number 缩放或旋转图像时影响像素沿 x 轴定位的值 |
b : number 旋转或倾斜图像时影响像素沿 y 轴定位的值 |
c : number 旋转或倾斜图像时影响像素沿 x 轴定位的值 |
d : number 缩放或旋转图像时影响像素沿 y 轴定位的值 |
tx : number 沿 x 轴平移每个点的距离 |
ty : number 沿 y 轴平移每个点的距离 |
公共方法
方法 |
---|
Matrix(a:number,b:number,c:number,d:number,tx:number,ty:number) 使用指定参数创建一个 Matrix 对象 |
append(a:number,b:number,c:number,d:number,tx:number,ty:number):egret.Matrix 后置矩阵 |
clone():egret.Matrix 返回一个新的 Matrix 对象,它是此矩阵的克隆,带有与所含对象完全相同的副本 |
concat(other:egret.Matrix):void 将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起 |
copyFrom(other:egret.Matrix):egret.Matrix 将源 Matrix 对象中的所有矩阵数据复制到调用方 Matrix 对象中 |
create():egret.Matrix [静态]从对象池中取出或创建一个新的Matrix对象 |
createBox(scaleX:number,scaleY:number,rotation:number,tx:number,ty:number):void 包括用于缩放、旋转和转换的参数 |
createGradientBox(width:number,height:number,rotation:number,tx:number,ty:number):void 创建 Graphics 类的 beginGradientFill() 和 lineGradientStyle() 方法所需的矩阵的特定样式 |
deltaTransformPoint(point:egret.Point):egret.Point 如果给定预转换坐标空间中的点,则此方法返回发生转换后该点的坐标 |
equals(other:egret.Matrix):boolean 是否与另一个矩阵数据相等 |
identity():void 为每个矩阵属性设置一个值,该值将导致矩阵无转换 |
invert():void 执行原始矩阵的逆转换 |
prepend(a:number,b:number,c:number,d:number,tx:number,ty:number):egret.Matrix 前置矩阵 |
release(matrix:egret.Matrix):void [静态]释放一个Matrix实例到对象池 |
rotate(angle:number):void 对 Matrix 对象应用旋转转换 |
scale(sx:number,sy:number):void 对矩阵应用缩放转换 |
setTo(a:number,b:number,c:number,d:number,tx:number,ty:number):egret.Matrix 将 Matrix 的成员设置为指定值 |
transformPoint(pointX:number,pointY:number,resultPoint:egret.Point):egret.Point 返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果 |
translate(dx:number,dy:number):void 沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定 |
属性详细信息
a
a : number = 1
- 支持版本:Egret 2.4
- 运行平台:Web,Native
缩放或旋转图像时影响像素沿 x 轴定位的值
b
b : number = 0
- 支持版本:Egret 2.4
- 运行平台:Web,Native
旋转或倾斜图像时影响像素沿 y 轴定位的值
c
c : number = 0
- 支持版本:Egret 2.4
- 运行平台:Web,Native
旋转或倾斜图像时影响像素沿 x 轴定位的值
d
d : number = 1
- 支持版本:Egret 2.4
- 运行平台:Web,Native
缩放或旋转图像时影响像素沿 y 轴定位的值
tx
tx : number = 0
- 支持版本:Egret 2.4
- 运行平台:Web,Native
沿 x 轴平移每个点的距离
ty
ty : number = 0
- 支持版本:Egret 2.4
- 运行平台:Web,Native
沿 y 轴平移每个点的距离
方法详细信息
Matrix()
public Matrix(a:number,b:number,c:number,d:number,tx:number,ty:number)
使用指定参数创建一个 Matrix 对象
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
append()
public append(a:number,b:number,c:number,d:number,tx:number,ty:number):egret.Matrix
后置矩阵
支持版本:Egret 2.4
运行平台:Web,Native
参数
返回:矩阵自身
clone()
public clone():egret.Matrix
返回一个新的 Matrix 对象,它是此矩阵的克隆,带有与所含对象完全相同的副本。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
concat()
public concat(other:egret.Matrix):void
将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。在数学术语中,将两个矩阵连接起来与使用矩阵乘法将它们结合起来是相同的。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- other:egret.Matrix - 要连接到源矩阵的矩阵。
copyFrom()
public copyFrom(other:egret.Matrix):egret.Matrix
将源 Matrix 对象中的所有矩阵数据复制到调用方 Matrix 对象中。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- other:egret.Matrix - 要拷贝的目标矩阵
create()
public create():egret.Matrix
从对象池中取出或创建一个新的Matrix对象。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
createBox()
public createBox(scaleX:number,scaleY:number,rotation:number,tx:number,ty:number):void
包括用于缩放、旋转和转换的参数。当应用于矩阵时,该方法会基于这些参数设置矩阵的值。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
createGradientBox()
public createGradientBox(width:number,height:number,rotation:number,tx:number,ty:number):void
创建 Graphics 类的 beginGradientFill() 和 lineGradientStyle() 方法所需的矩阵的特定样式。宽度和高度被缩放为 scaleX/scaleY 对,而 tx/ty 值偏移了宽度和高度的一半。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
deltaTransformPoint()
public deltaTransformPoint(point:egret.Point):egret.Point
如果给定预转换坐标空间中的点,则此方法返回发生转换后该点的坐标。与使用 transformPoint() 方法应用的标准转换不同,deltaTransformPoint() 方法的转换不考虑转换参数 tx 和 ty。
支持版本:Egret 2.4
运行平台:Web,Native
参数
- point:egret.Point - 想要获得其矩阵转换结果的点
返回:由应用矩阵转换所产生的点
equals()
public equals(other:egret.Matrix):boolean
是否与另一个矩阵数据相等
支持版本:Egret 2.4
运行平台:Web,Native
参数
- other:egret.Matrix - 要比较的另一个矩阵对象。
返回:是否相等,ture表示相等。
identity()
public identity():void
为每个矩阵属性设置一个值,该值将导致矩阵无转换。通过应用恒等矩阵转换的对象将与原始对象完全相同。调用 identity() 方法后,生成的矩阵具有以下属性:a=1、b=0、c=0、d=1、tx=0 和 ty=0。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
invert()
public invert():void
执行原始矩阵的逆转换。您可以将一个逆矩阵应用于对象来撤消在应用原始矩阵时执行的转换。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
prepend()
public prepend(a:number,b:number,c:number,d:number,tx:number,ty:number):egret.Matrix
前置矩阵
支持版本:Egret 2.4
运行平台:Web,Native
参数
返回:矩阵自身
release()
public release(matrix:egret.Matrix):void
释放一个Matrix实例到对象池
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- matrix:egret.Matrix - 需要回收的 matrix
rotate()
public rotate(angle:number):void
对 Matrix 对象应用旋转转换。rotate() 方法将更改 Matrix 对象的 a、b、c 和 d 属性。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- angle:number - 以弧度为单位的旋转角度。
scale()
public scale(sx:number,sy:number):void
对矩阵应用缩放转换。x 轴乘以 sx,y 轴乘以 sy。scale() 方法将更改 Matrix 对象的 a 和 d 属性。
setTo()
public setTo(a:number,b:number,c:number,d:number,tx:number,ty:number):egret.Matrix
将 Matrix 的成员设置为指定值
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
transformPoint()
public transformPoint(pointX:number,pointY:number,resultPoint:egret.Point):egret.Point
返回将 Matrix 对象表示的几何转换应用于指定点所产生的结果。
支持版本:Egret 2.4
运行平台:Web,Native
参数
- pointX:number - 想要获得其矩阵转换结果的点的x坐标。
- pointY:number - 想要获得其矩阵转换结果的点的y坐标。
- resultPoint:egret.Point - 框架建议尽可能减少创建对象次数来优化性能,可以从外部传入一个复用的Point对象来存储结果,若不传入将创建一个新的Point对象返回。
返回:由应用矩阵转换所产生的点。
translate()
public translate(dx:number,dy:number):void
沿 x 和 y 轴平移矩阵,由 dx 和 dy 参数指定。
示例
/*
* 下面的示例使用 MatrixExample 类创建新 Matrix 对象,然后使用 egret.log() 方法输出各种类方法的结果。
*/
class MatrixExample extends egret.DisplayObjectContainer {
public constructor() {
super();
var myMatrix:egret.Matrix = new egret.Matrix();
egret.log(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0)
myMatrix.translate(100, 100);
egret.log(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=100, ty=100)
myMatrix.scale(2, 3);
egret.log(myMatrix.toString()); // (a=2, b=0, c=0, d=3, tx=200, ty=300)
}
}