| 包 | flash.geom |
| 类 | public class Transform |
| 继承 | Transform Object |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
concatenatedColorTransform 和 concatenatedMatrix 属性访问这些组合转换。
若要应用颜色转换,请执行下列操作:创建一个 ColorTransform 对象,并使用该对象的方法和属性设置颜色调整,然后将显示对象的 transform 属性的 colorTransformation 属性分配给新的 ColorTransformation 对象。
若要应用二维转换,请执行下列操作:创建一个 Matrix 对象,并设置该矩阵的二维转换,然后将显示对象的 transform.matrix 属性分配给新的 Matrix 对象。
若要应用三维转换,应首先创建一个三维显示对象。三维显示对象具有一个非零的 z 属性值。您无需创建 Matrix3D 对象。对于所有三维对象,当您为显示对象分配 z 值时,将自动创建 Matrix3D 对象。可以通过显示对象的 transform 属性访问显示对象的 Matrix3D 对象。使用 Matrix3D 类的方法,可以添加或修改现有转换设置。还可以创建自定义 Matrix3D 对象,并设置该对象的转换元素,然后使用 transform.matrix 属性将新的 Matrix3D 对象分配给显示对象。
若要修改舞台或 root 对象的透视投影,请执行下列操作:使用 root 显示对象的 transform.matrix 属性以访问 PerspectiveProjection 对象。或者,通过设置显示对象的父级的透视投影属性,对显示对象应用不同的透视投影属性。子显示对象会继承新属性。具体而言,创建一个 PerspectiveProjection 对象并设置其属性,然后将此 PerspectiveProjection 对象分配给父显示对象的 transform 属性的 perspectiveProjection 属性。然后,指定的投影转换将应用于显示对象的所有三维子级。
由于 PerspectiveProjection 对象和 Matrix3D 对象都会执行透视转换,因此不要将二者同时分配给显示对象。将 PerspectiveProjection 对象用于焦距和投影中心更改。若要获取对透视转换的更多控制,请创建透视投影 Matrix3D 对象。
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| colorTransform : ColorTransform 一个 ColorTransform 对象,其中包含整体调整显示对象颜色的值。 | Transform | ||
| concatenatedColorTransform : ColorTransform [只读 (read-only)] 一个 ColorTransform 对象,表示应用于此显示对象及其所有父级对象的组合颜色转换,回到根级别。 | Transform | ||
| concatenatedMatrix : Matrix [只读 (read-only)] 一个 Matrix 对象,表示此显示对象及其所有父级对象的组合转换矩阵,回到根级别。 | Transform | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| matrix : Matrix 一个 Matrix 对象,其中包含更改显示对象的缩放、旋转和平移的值。 | Transform | ||
| matrix3D : Matrix3D 提供对三维显示对象的 Matrix3D 对象的访问。 | Transform | ||
| perspectiveProjection : PerspectiveProjection 提供对三维显示对象的 PerspectiveProjection 对象的访问。 | Transform | ||
| pixelBounds : Rectangle [只读 (read-only)] 一个 Rectangle 对象,它定义舞台上的显示对象的边界矩形。 | Transform | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| 方法 | 定义方 | ||
|---|---|---|---|
返回一个 Matrix3D 对象,该对象可以相对于当前显示对象的空间转换指定显示对象的空间。 | Transform | ||
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | Object | |
| colorTransform | 属性 |
colorTransform:ColorTransform [读写] | 运行时版本: | AIR 1.0 Flash Player 9 |
一个 ColorTransform 对象,其中包含整体调整显示对象颜色的值。
public function get colorTransform():ColorTransform public function set colorTransform(value:ColorTransform):voidTypeError — 设置时 colorTransform 为 null |
另请参见
| concatenatedColorTransform | 属性 |
concatenatedColorTransform:ColorTransform [只读 (read-only)] | 运行时版本: | AIR 1.0 Flash Player 9 |
一个 ColorTransform 对象,表示应用于此显示对象及其所有父级对象的组合颜色转换,回到根级别。如果在不同级别上应用了不同的颜色转换,则将其中所有转换连接成此属性的一个 ColorTransform 对象。
public function get concatenatedColorTransform():ColorTransform另请参见
| concatenatedMatrix | 属性 |
concatenatedMatrix:Matrix [只读 (read-only)] | 运行时版本: | AIR 1.0 Flash Player 9 |
一个 Matrix 对象,表示此显示对象及其所有父级对象的组合转换矩阵,回到根级别。如果在不同级别上应用了不同的转换矩阵,则将其中所有矩阵连接成此属性的一个矩阵。此外,对于浏览器中运行的可调整大小的 SWF 内容,此属性将因调整窗口大小而造成的舞台坐标与窗口坐标之差视为重要因素。因此,该属性将局部坐标转换为窗口坐标,后者可能与舞台的坐标空间不同。
public function get concatenatedMatrix():Matrix| matrix | 属性 |
matrix:Matrix [读写] | 运行时版本: | AIR 1.0 Flash Player 9 |
一个 Matrix 对象,其中包含更改显示对象的缩放、旋转和平移的值。
如果将 matrix 属性设置为某个值(非 null),则 matrix3D 属性为 null。如果将 matrix3D 属性设置为某个值(非 null),则 matrix 属性为 null。
public function get matrix():Matrix public function set matrix(value:Matrix):voidTypeError — 设置时矩阵为 null |
另请参见
| matrix3D | 属性 |
matrix3D:Matrix3D [读写] | 语言版本: | ActionScript 3.0 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
提供对三维显示对象的 Matrix3D 对象的访问。Matrix3D 对象表示一个转换矩阵,它确定显示对象的位置和方向。Matrix3D 对象还可以执行透视投影。
如果将 matrix 属性设置为某个值(非 null),则 matrix3D 属性为 null。如果将 matrix3D 属性设置为某个值(非 null),则 matrix 属性为 null。
public function get matrix3D():Matrix3D public function set matrix3D(value:Matrix3D):void另请参见
| perspectiveProjection | 属性 |
perspectiveProjection:PerspectiveProjection [读写] | 语言版本: | ActionScript 3.0 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
提供对三维显示对象的 PerspectiveProjection 对象的访问。可以使用 PerspectiveProjection 对象修改舞台的透视转换,也可以将透视转换分配给显示对象的所有三维子级。
基于视野和舞台的高宽比(尺寸),将默认的 PerspectiveProjection 对象分配给 root 对象。
public function get perspectiveProjection():PerspectiveProjection public function set perspectiveProjection(value:PerspectiveProjection):void另请参见
| pixelBounds | 属性 |
pixelBounds:Rectangle [只读 (read-only)] | 运行时版本: | AIR 1.0 Flash Player 9 |
一个 Rectangle 对象,它定义舞台上的显示对象的边界矩形。
public function get pixelBounds():Rectangle| getRelativeMatrix3D | () | 方法 |
public function getRelativeMatrix3D(relativeTo:DisplayObject):Matrix3D| 语言版本: | ActionScript 3.0 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
返回一个 Matrix3D 对象,该对象可以相对于当前显示对象的空间转换指定显示对象的空间。可以使用 getRelativeMatrix3D() 方法,将一个三维显示对象相对于另一个三维显示对象移动。
参数
relativeTo:DisplayObject —
相对于其发生转换的显示对象。若要获取相对于舞台的 Matrix3D 对象,请将该参数设置为 root 或 stage 对象。若要获取显示对象的相对于现实世界的矩阵,请将该参数设置为一个已应用透视转换的显示对象。
|
Matrix3D —
一个 Matrix3D 对象,该对象可用于将 relativeTo 显示对象的空间转换为当前显示对象的空间。
|
另请参见
TransformExample() 构造函数创建一个新的 sprite 对象 target。
TransformExample() 构造函数调用 draw() 方法,该方法在 sprite 中绘制一个渐变正方形。
TransformExample() 构造函数为 sprite 添加 click 事件侦听器,该侦听器由 clickHandler() 方法处理。
clickHandler() 方法创建一个新的 Matrix 对象 skewMatrix,该对象被设置为应用倾斜效果。将另一个矩阵 tempMatrix 分配给 Sprite 的当前转换矩阵,然后使用 concat() 方法将它与 skewMatrix 合并。将此矩阵分配给正方形 Sprite 的 transform.matrix 属性。每次用户单击正方形时,对 clickHandler() 的调用都将通过倾斜正方形来修改其形状。
clickHandler() 方法创建一个新的 ColorTransform 对象。新 ColorTransform 的 redOffset 属性设置为 redOffset 的当前值并且每次增加 25。同样,blueOffset 属性每次减少 25。每次单击时,Sprite 的颜色都会改变。
package {
import flash.display.Sprite;
import flash.display.GradientType;
import flash.geom.Matrix;
import flash.geom.ColorTransform;
import flash.events.MouseEvent;
public class TransformExample extends Sprite {
public function TransformExample() {
var target:Sprite = new Sprite();
draw(target);
addChild(target);
target.useHandCursor = true;
target.buttonMode = true;
target.addEventListener(MouseEvent.CLICK, clickHandler)
}
public function draw(sprite:Sprite):void {
var red:uint = 0xFF0000;
var green:uint = 0x00FF00;
var blue:uint = 0x0000FF;
var size:Number = 100;
sprite.graphics.beginGradientFill(GradientType.LINEAR, [red, blue, green], [1, 0.5, 1], [0, 200, 255]);
sprite.graphics.drawRect(0, 0, 100, 100);
}
public function clickHandler(event:MouseEvent):void {
var skewMatrix:Matrix = new Matrix();
skewMatrix.c = 0.25;
var tempMatrix:Matrix = this.transform.matrix;
tempMatrix.concat(skewMatrix);
this.transform.matrix = tempMatrix;
var rOffset:Number = this.transform.colorTransform.redOffset + 25;
var bOffset:Number = this.transform.colorTransform.blueOffset - 25;
this.transform.colorTransform = new ColorTransform(1, 1, 1, 1, rOffset, 0, bOffset, 0);
}
}
}