套件 | flash.geom |
類別 | public class Transform |
繼承 | Transform Object |
子類別 | Transform |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
concatenatedColorTransform
和 concatenatedMatrix
屬性存取這些混合變形。
若要套用顏色轉換:建立 ColorTransform 物件,使用此物件的方法和屬性來設定顏色調整,接著將顯示物件之 transform
屬性的 colorTransformation
屬性指定給新的 ColorTransformation 物件。
若要套用二維變形:請建立 Matrix 物件,設定此矩陣的二維變形,接著將顯示物件的 transform.matrix
屬性指定給新的 Matrix 物件。
若要套用三維變形:請先從三維顯示物件開始。三維顯示物件的 z
屬性值不是零。您不需要建立 Matrix3D 物件。對於所有三維物件,當您將 z
值指定給顯示物件時,就會自動建立 Matrix3D 物件。您可以透過顯示物件的 transform
屬性來存取顯示物件的 Matrix3D 物件。使用 Matrix3D 類別的方法,可加入至現有的變形設定或加以修改。此外,您也可以建立自訂的 Matrix3D 物件,設定自訂 Matrix3D 物件的變形元素,接著使用 transform.matrix
屬性將新的 Matrix3D 物件指定給顯示物件。
若要修改舞台或根物件的透視投影:請使用根顯示物件的 transform.matrix
屬性來存取 PerspectiveProjection 物件。或者,藉由設定顯示物件之父輩的透視投影屬性,將不同的透視投影屬性套用至顯示物件。子顯示物件會繼承新屬性。更具體來說,建立 PerspectiveProjection 物件並設定其屬性,接著將 PerspectiveProjection 物件指定給父輩顯示物件之 transform
屬性的 perspectiveProjection
屬性。然後,指定的投影變形便會套用至顯示物件的所有三維子系。
由於 PerspectiveProjection 和 Matrix3D 物件都會執行透視變形,因此請不要同時將這兩個物件指定給顯示物件。若要變更焦距和投影中心,請使用 PerspectiveProjection 物件。若要加強控制透視變形,請建立透視投影 Matrix3D 物件。
相關 API 元素
flash.geom.ColorTransform
flash.geom.Matrix
flash.geom.Matrix3D
flash.geom.PerspectiveProjection
屬性 | 定義自 | ||
---|---|---|---|
colorTransform : flash.geom:ColorTransform
ColorTransform 物件,含有調整整個顯示物件中顏色的值。 | Transform | ||
concatenatedColorTransform : flash.geom:ColorTransform [唯讀]
ColorTransform 物件,代表套用至顯示物件及其所有父物件之根層級中的混合顏色轉換。 | Transform | ||
concatenatedMatrix : Matrix [唯讀]
Matrix 物件,代表顯示物件及其所有父物件之根層級中的混合變形矩陣。 | Transform | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
matrix : Matrix
Matrix 物件,含有變更顯示物件之縮放、旋轉和轉移的值。 | Transform | ||
matrix3D : Matrix3D
讓使用者存取三維顯示物件的 Matrix3D 物件。 | Transform | ||
perspectiveProjection : PerspectiveProjection
讓使用者存取三維顯示物件的 PerspectiveProjection 物件。 | Transform | ||
pixelBounds : Rectangle [唯讀]
Rectangle 物件,定義舞台上顯示物件的矩形邊界。 | Transform |
方法 | 定義自 | ||
---|---|---|---|
傳回 Matrix3D 物件,這個物件可以相對於目前顯示物件的空間來轉換指定之顯示物件的空間。 | Transform | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object |
colorTransform | 屬性 |
colorTransform:flash.geom:ColorTransform
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
ColorTransform 物件,含有調整整個顯示物件中顏色的值。
實作
public function get colorTransform():flash.geom:ColorTransform
public function set colorTransform(value:flash.geom:ColorTransform):void
擲回值
TypeError — 設定時,colorTransform 為 null。
|
相關 API 元素
concatenatedColorTransform | 屬性 |
concatenatedColorTransform:flash.geom:ColorTransform
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
ColorTransform 物件,代表套用至顯示物件及其所有父物件之根層級中的混合顏色轉換。 如果在不同的層級套用不同的顏色轉換,所有這些轉換都會連接至這個屬性的其中一個 ColorTransform 物件。
實作
public function get concatenatedColorTransform():flash.geom:ColorTransform
相關 API 元素
concatenatedMatrix | 屬性 |
concatenatedMatrix:Matrix
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Matrix 物件,代表顯示物件及其所有父物件之根層級中的混合變形矩陣。 如果在不同的層級套用不同的變形矩陣,這些所有矩陣都會連接至這個屬性的其中一個矩陣。此外,若為在瀏覽器中執行的可調整大小 SWF 內容,這個屬性會列入由於視窗調整大小而造成舞台座標與視窗座標之間產生差異的因素。因此,這個屬性會將區域座標轉換成視窗座標,而其座標空間可能與「舞台」的座標空間不同。
實作
public function get concatenatedMatrix():Matrix
matrix | 屬性 |
matrix:Matrix
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Matrix 物件,含有變更顯示物件之縮放、旋轉和轉移的值。
如果 matrix
屬性設定為某個值 (非 null
),matrix3D
屬性就是 null
。而且,如果 matrix3D
屬性設定為某個值 (非 null
),matrix
屬性就是 null
。
實作
public function get matrix():Matrix
public function set matrix(value:Matrix):void
擲回值
TypeError — 設定時,矩陣為 null。
|
相關 API 元素
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
相關 API 元素
perspectiveProjection | 屬性 |
perspectiveProjection:PerspectiveProjection
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
讓使用者存取三維顯示物件的 PerspectiveProjection 物件。PerspectiveProjection 物件可以用來修改舞台的透視變形,或將透視變形指定給顯示物件的所有三維子系。
根據舞台檢視和比例 (尺寸),會將預設的 PerspectiveProjection 物件指定給根物件。
實作
public function get perspectiveProjection():PerspectiveProjection
public function set perspectiveProjection(value:PerspectiveProjection):void
相關 API 元素
pixelBounds | 屬性 |
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 顯示物件的空間轉換為目前顯示物件的空間。
|
相關 API 元素
TransformExample()
建構函式會建立新的 Sprite 物件target
。TransformExample()
建構函式會呼叫draw()
方法,在 Sprite 中繪製漸層正方形。TransformExample()
建構函式會為 Sprite 加入按滑鼠事件偵聽程式,這個偵聽程式是由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); } } }
Tue Jun 12 2018, 03:47 PM Z