跳到主要内容

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
  • 参数
    • a:number - 缩放或旋转图像时影响像素沿 x 轴定位的值。
    • b:number - 旋转或倾斜图像时影响像素沿 y 轴定位的值。
    • c:number - 旋转或倾斜图像时影响像素沿 x 轴定位的值。
    • d:number - 缩放或旋转图像时影响像素沿 y 轴定位的值。
    • tx:number - 沿 x 轴平移每个点的距离。
    • ty:number - 沿 y 轴平移每个点的距离。

append()

public append(a:number,b:number,c:number,d:number,tx:number,ty:number):egret.Matrix

后置矩阵

  • 支持版本:Egret 2.4

  • 运行平台:Web,Native

  • 参数

    • a:number - 缩放或旋转图像时影响像素沿 x 轴定位的值
    • b:number - 缩放或旋转图像时影响像素沿 y 轴定位的值
    • c:number - 缩放或旋转图像时影响像素沿 x 轴定位的值
    • d:number - 缩放或旋转图像时影响像素沿 y 轴定位的值
    • tx:number - 沿 x 轴平移每个点的距离
    • ty:number - 沿 y 轴平移每个点的距离
  • 返回:矩阵自身

clone()

public clone():egret.Matrix

返回一个新的 Matrix 对象,它是此矩阵的克隆,带有与所含对象完全相同的副本。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

concat()

public concat(other:egret.Matrix):void

将某个矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。在数学术语中,将两个矩阵连接起来与使用矩阵乘法将它们结合起来是相同的。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数

copyFrom()

public copyFrom(other:egret.Matrix):egret.Matrix

将源 Matrix 对象中的所有矩阵数据复制到调用方 Matrix 对象中。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数

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
  • 参数
    • scaleX:number - 水平缩放所用的系数
    • scaleY:number - 垂直缩放所用的系数
    • rotation:number - 旋转量(以弧度为单位)
    • tx:number - 沿 x 轴向右平移(移动)的像素数
    • ty:number - 沿 y 轴向下平移(移动)的像素数

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
  • 参数
    • width:number - 渐变框的宽度
    • height:number - 渐变框的高度
    • rotation:number - 旋转量(以弧度为单位)
    • tx:number - 沿 x 轴向右平移的距离(以像素为单位)。此值将偏移 width 参数的一半
    • ty:number - 沿 y 轴向下平移的距离(以像素为单位)。此值将偏移 height 参数的一半

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

  • 参数

  • 返回:是否相等,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

  • 参数

    • a:number - 缩放或旋转图像时影响像素沿 x 轴定位的值
    • b:number - 缩放或旋转图像时影响像素沿 y 轴定位的值
    • c:number - 缩放或旋转图像时影响像素沿 x 轴定位的值
    • d:number - 缩放或旋转图像时影响像素沿 y 轴定位的值
    • tx:number - 沿 x 轴平移每个点的距离
    • ty:number - 沿 y 轴平移每个点的距离
  • 返回:矩阵自身

release()

public release(matrix:egret.Matrix):void

释放一个Matrix实例到对象池

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数

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 属性。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • sx:number - 用于沿 x 轴缩放对象的乘数。
    • sy:number - 用于沿 y 轴缩放对象的乘数。

setTo()

public setTo(a:number,b:number,c:number,d:number,tx:number,ty:number):egret.Matrix

将 Matrix 的成员设置为指定值

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • a:number - 缩放或旋转图像时影响像素沿 x 轴定位的值。
    • b:number - 旋转或倾斜图像时影响像素沿 y 轴定位的值。
    • c:number - 旋转或倾斜图像时影响像素沿 x 轴定位的值。
    • d:number - 缩放或旋转图像时影响像素沿 y 轴定位的值。
    • tx:number - 沿 x 轴平移每个点的距离。
    • ty:number - 沿 y 轴平移每个点的距离。

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 参数指定。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • dx:number - 沿 x 轴向右移动的量(以像素为单位)。
    • dy:number - 沿 y 轴向下移动的量(以像素为单位)。

示例

/*
* 下面的示例使用 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)
}
}