パッケージflash.geom
クラスpublic class Transform
継承Transform Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

Transform クラスは、表示オブジェクトに適用されるカラー調整プロパティと 2 次元または 3 次元の変換オブジェクトへのアクセスを提供します。変換時に、表示オブジェクトのカラーまたは方向と位置が、現在の値または座標から新しい値または座標に調整(オフセット)されます。Transform クラスは、表示オブジェクトおよびすべての親オブジェクトに適用されるカラー変換と 2 次元マトリックス変換に関するデータも収集します。concatenatedColorTransform プロパティと concatenatedMatrix プロパティを使用して、これらの結合された変換にアクセスできます。

カラー変換を適用するには、ColorTransform オブジェクトを作成し、オブジェクトのメソッドとプロパティを使用してカラー調整を設定した後、colorTransformation プロパティ(表示オブジェクトの transform プロパティの)を新しい ColorTransformation オブジェクトに割り当てます。

2 次元変換を適用するには、Matrix オブジェクトを作成し、マトリックスの 2 次元変換を設定した後、表示オブジェクトの transform.matrix プロパティを新しい Matrix オブジェクトに割り当てます。

3 次元変換の適用は、3 次元表示オブジェクトで開始します。3 次元表示オブジェクトには、0 以外の z プロパティ値が設定されます。Matrix3D オブジェクトを作成する必要はありません。すべての 3 次元オブジェクトについて、z 値を表示オブジェクトに割り当てたときに Matrix3D オブジェクトが自動的に作成されます。表示オブジェクトの transform プロパティを使用して、表示オブジェクトの Matrix3D オブジェクトにアクセスできます。Matrix3D クラスのメソッドを使用して、既存の変換設定に対する追加または変更を実施できます。カスタム Matrix3D オブジェクトを作成し、カスタム Matrix3D オブジェクトの変換エレメントを設定した後、transform.matrix プロパティを使用して、新しい Matrix3D オブジェクトを表示オブジェクトに割り当てることもできます。

ステージまたはルートオブジェクトの遠近法に基づく投影を変更するには、ルート表示オブジェクトの transform.matrix プロパティを使用して、PerspectiveProjection オブジェクトへのアクセスを取得します。 または、表示オブジェクトの親の遠近法に基づく投影プロパティを設定することで、別の遠近法に基づく投影プロパティを表示オブジェクトに適用します。子表示オブジェクトは、新しいプロパティを継承します。具体的には、PerspectiveProjection オブジェクトを作成してプロパティを設定した後、PerspectiveProjection オブジェクトを perspectiveProjection プロパティ(親表示オブジェクトの transform プロパティの)に割り当てます。次に、指定された投影変換をすべての表示オブジェクトの 3 次元の子に適用します。

PerspectiveProjection オブジェクトと Matrix3D オブジェクトはどちらも遠近法に基づく変形を実行するため、両方を同時に表示オブジェクトに割り当てないでください。焦点の長さと投影の中心を変更するには、PerspectiveProjection オブジェクトを使用します。遠近法に基づく変換をより正確に制御するには、遠近法に基づく投影の Matrix3D オブジェクトを作成します。

例を表示

関連項目

flash.display.DisplayObject.transform
flash.geom.ColorTransform
flash.geom.Matrix
flash.geom.Matrix3D
flash.geom.PerspectiveProjection


パブリックプロパティ
 プロパティ定義元
  colorTransform : ColorTransform
表示オブジェクトのカラーを全体的に調整する値を格納している ColorTransform オブジェクトです。
Transform
  concatenatedColorTransform : ColorTransform
[読み取り専用] この表示オブジェクトおよびルートレベルまでのすべての親オブジェクトに適用される、結合されたカラー変換を表す ColorTransform オブジェクトです。
Transform
  concatenatedMatrix : Matrix
[読み取り専用] この表示オブジェクトおよびルートレベルまでのそのすべての親オブジェクトの結合された変換行列を表す Matrix オブジェクトです。
Transform
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  matrix : Matrix
表示オブジェクトの拡大 / 縮小、回転、および変換を変更する値を格納している Matrix オブジェクトです。
Transform
  matrix3D : Matrix3D
3 次元表示オブジェクトの Matrix3D オブジェクトへのアクセスを提供します。
Transform
  perspectiveProjection : PerspectiveProjection
3 次元表示オブジェクトの PerspectiveProjection オブジェクトへのアクセスを提供します。
Transform
  pixelBounds : Rectangle
[読み取り専用] ステージ上の表示オブジェクトの境界を示す矩形を定義する Rectangle オブジェクトです。
Transform
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義元
  
Matrix3D オブジェクトを返します。Matrix3D オブジェクトは、現在の表示オブジェクトの空間を基準にして、指定された表示オブジェクトの空間を変換します。
Transform
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
colorTransformプロパティ
colorTransform:ColorTransform  [読み書き可能]

ランタイムバージョン: AIR 1.0 Flash Player 9

表示オブジェクトのカラーを全体的に調整する値を格納している ColorTransform オブジェクトです。



実装
    public function get colorTransform():ColorTransform
    public function set colorTransform(value:ColorTransform):void

例外
TypeError — ColorTransform は、設定時に null に設定されます。

関連項目

concatenatedColorTransformプロパティ 
concatenatedColorTransform:ColorTransform  [読み取り専用]

ランタイムバージョン: AIR 1.0 Flash Player 9

この表示オブジェクトおよびルートレベルまでのすべての親オブジェクトに適用される、結合されたカラー変換を表す ColorTransform オブジェクトです。異なるレベルで異なるカラー変換を適用した場合、すべての変換が連結されて、このプロパティ用の 1 つの ColorTransform オブジェクトになります。



実装
    public function get concatenatedColorTransform():ColorTransform

関連項目

concatenatedMatrixプロパティ 
concatenatedMatrix:Matrix  [読み取り専用]

ランタイムバージョン: AIR 1.0 Flash Player 9

この表示オブジェクトおよびルートレベルまでのそのすべての親オブジェクトの結合された変換行列を表す Matrix オブジェクトです。異なるレベルで異なる変換マトリックスを適用した場合、すべてのマトリックスが連結されて、このプロパティ用の 1 つのマトリックスになります。 また、ブラウザで実行されるサイズ変更可能な 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):void

例外
TypeError — 行列は、設定時に null に設定されます。

関連項目

matrix3Dプロパティ 
matrix3D:Matrix3D  [読み書き可能]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

3 次元表示オブジェクトの 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

3 次元表示オブジェクトの PerspectiveProjection オブジェクトへのアクセスを提供します。PerspectiveProjection オブジェクトを使用して、ステージの遠近法に基づく変形を変更したり、遠近法に基づく変形を表示オブジェクトの 3 次元の子すべてに割り当てることができます。

視点とステージの縦横比(サイズ)に基づいて、デフォルトの PerspectiveProjection オブジェクトがルートオブジェクトに割り当てられます。



実装
    public function get perspectiveProjection():PerspectiveProjection
    public function set perspectiveProjection(value:PerspectiveProjection):void

関連項目

pixelBoundsプロパティ 
pixelBounds:Rectangle  [読み取り専用]

ランタイムバージョン: 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 オブジェクトを返します。Matrix3D オブジェクトは、現在の表示オブジェクトの空間を基準にして、指定された表示オブジェクトの空間を変換します。getRelativeMatrix3D() メソッドを使用すると、ある 3 次元表示オブジェクトを基準にして別の 3 次元表示オブジェクトを移動できます。

パラメータ

relativeTo:DisplayObject — 変換の基準になる表示オブジェクトです。ステージを基準にした Matrix3D オブジェクトを取得するには、パラメータを root オブジェクトまたは stage オブジェクトに設定します。表示オブジェクトのワールドを基準とするマトリックスを取得するには、パラメータを遠近法に基づく変形が適用された表示オブジェクトに設定します。

戻り値
Matrix3D — 空間を relativeTo 表示オブジェクトから現在の表示オブジェクト空間に変換するために使用できる Matrix3D オブジェクトです。

関連項目

例の使用法
TransformExample.as

次の例では、TransformExample クラスを使用して、グラデーションのパターンで塗りつぶされた正方形のスプライトの下側を傾斜させます。 ユーザーが正方形をクリックするたびに、次の手順でスプライトを傾斜させて変形させます。
  1. TransformExample() コンストラクタが新しい Sprite オブジェクト target を作成します。
  2. TransformExample() コンストラクタは draw() メソッドを呼び出します。このメソッドは、グラデーションの四角形をスプライトに描画します。
  3. TransformExample() コンストラクタはスプライトに click イベントリスナーを追加します。これは clickHandler() メソッドによって処理されます。
  4. clickHandler() メソッドは、新しい Matrix オブジェクト skewMatrix を作成し、傾斜効果を適用します。 もう 1 つのマトリックス tempMatrix は、スプライトの現在の変換マトリックスに割り当てられ、skewMatrixconcat() メソッドによって結合されます。 この行列は正方形のスプライトの transform.matrix プロパティに割り当てられます。ユーザーが正方形をクリックするたびに clickHandler() を呼び出して、正方形のシェイプを傾斜させて変更します。
  5. また、clickHandler() メソッドは、新しい ColorTransform オブジェクトを作成します。 新しい ColorTransform オブジェクトの redOffset プロパティは redOffset の現在の値に設定され、25 ずつ増加します。同様に、blueOffset プロパティは 25 ずつ減少します。クリックするたびに、スプライトのカラーが変化します。
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);            
        }
    }
}