Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド
ホーム  |  パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  新機能  |  索引  |  付録  |  英語で表示される理由
フィルター: サーバーからデータを取得しています...
サーバーからデータを取得しています...
flash.geom 

Matrix  - AS3

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

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

Matrix クラスは、2 つの座標空間の間におけるポイントのマッピング方法を決定する変換マトリックスを表します。Matrix オブジェクトのプロパティを設定し、Matrix オブジェクトを Transform オブジェクトの matrix プロパティに適用し、次に Transform オブジェクトを表示オブジェクトの transform プロパティとして適用することで、表示オブジェクトに対する各種グラフィック変換を実行できます。これらの変換機能には、平行移動(xy の位置変更)、回転、拡大 / 縮小、傾斜などが含まれます。

このような変換を「アフィン変換」と言います。アフィン変換では、変換中に線分の直線性が保たれるため、平行線は平行のままになります。

変換行列を表示オブジェクトに適用するには、Transform オブジェクトを作成して、そのオブジェクトの matrix プロパティを変換行列に設定し、表示オブジェクトの transform プロパティに Transform オブジェクトを設定します。Matrix オブジェクトは、次のようないくつかのメソッドのパラメーターとしても使用します。

  • BitmapData オブジェクトの draw() メソッド
  • Graphics オブジェクトの beginBitmapFill() メソッド、beginGradientFill() メソッドまたは lineGradientStyle() メソッド

変換行列オブジェクトは、次の内容を備えた 3 × 3 の行列です。

Matrix クラスのプロパティのマトリックス表記

従来の変換行列では、uv、および w プロパティによって特別な機能を提供します。Matrix クラスは 2 次元空間でのみ演算できるので、u プロパティと v プロパティの値は 0.0 で、w プロパティの値は 1.0 です。この行列の有効値は次のとおりです。

u、v、w の前提値を示した Matrix クラスのプロパティのマトリックス表記

Matrix オブジェクトの他の 6 つのプロパティ、abcdtx、および ty の値をすべて取得および設定できます。

Matrix クラスは、主要な 4 種類の変換機能(平行移動、拡大 / 縮小、回転、傾斜)に対応しています。専用メソッドを使用して、これらのうち 3 つの変換機能を設定できます。以下の表に示します。

変換メソッドマトリックスの値表示結果説明
平行移動(変位) translate(tx, ty) 移動メソッドのパラメーターのマトリックス表記 移動メソッドの効果を示す図 イメージを右に tx ピクセル、下に ty ピクセル移動します。
拡大 / 縮小 scale(sx, sy) 拡大 / 縮小メソッドのパラメーターのマトリックス表記 拡大 / 縮小メソッドの効果を示す図 各ピクセルの位置を x 軸方向に sx 倍、y 軸方向に sy 倍することで、イメージの大きさを変更します。
回転 rotate(q) 回転メソッドのプロパティのマトリックス表記 回転メソッドの効果を示す図 イメージを角度 q(単位はラジアン)だけ回転します。
傾斜または変形 なし。プロパティ bc に設定する必要があります。 傾斜機能のプロパティのマトリックス表記 傾斜機能の効果を示す図 x 軸または y 軸に平行な方向にイメージをスライドします。Matrix オブジェクトの b プロパティは、y 軸に沿った傾斜角度のタンジェントを表し、Matrix オブジェクトの c プロパティは、x 軸に沿った傾斜角度のタンジェントを表します。

効果的に複数の変換を組み合わせることができるように、変換関数はそれぞれ現在の行列プロパティを変更します。これを行うには、対象の表示オブジェクトの transform プロパティを使用して行列を適用する前に、複数の変換関数を呼び出します。

Matrix オブジェクトのメソッドを呼び出す前に、new Matrix() コンストラクターを使用して Matrix オブジェクトを作成する必要があります。

例を表示

さらに例を参照

関連する API エレメント



パブリックプロパティ
 プロパティ定義元
  a : Number
イメージを拡大 / 縮小または回転するときに x 軸方向のピクセルの配置に影響を与える値です。
Matrix
  b : Number
イメージを回転または傾斜させるときに y 軸方向のピクセルの配置に影響を与える値です。
Matrix
  c : Number
イメージを回転または傾斜させるときに x 軸方向のピクセルの配置に影響を与える値です。
Matrix
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。
Object
  d : Number
イメージを拡大 / 縮小または回転するときに y 軸方向のピクセルの配置に影響を与える値です。
Matrix
  tx : Number
x 軸方向に各ポイントを平行移動する距離です。
Matrix
  ty : Number
y 軸方向に各ポイントを平行移動する距離です。
Matrix
パブリックメソッド
 メソッド定義元
  
Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)
指定されたパラメーターで新しい Matrix オブジェクトを作成します。
Matrix
  
新しい Matrix オブジェクトとして、このマトリックスのクローンを返します。含まれるオブジェクトはまったく同じコピーになります。
Matrix
  
マトリックスを現在のマトリックスと連結して、2 つのマトリックスの図形効果を効果的に組み合わせます。
Matrix
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Vector3D オブジェクトを、呼び出し元の Matrix3D オブジェクトの特定の列にコピーします。
Matrix
  
copyColumnTo(column:uint, vector3D:Vector3D):void
呼び出し元の Matrix オブジェクトの特定の列を、Vector3D オブジェクトにコピーします。
Matrix
  
copyFrom(sourceMatrix:Matrix):void
すべてのマトリックスデータを、ソース Point オブジェクトから、呼び出し元の Matrix オブジェクトにコピーします。
Matrix
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Vector3D オブジェクトを、呼び出し元の Matrix オブジェクトの特定の行にコピーします。
Matrix
  
copyRowTo(row:uint, vector3D:Vector3D):void
呼び出し元の Matrix オブジェクトの特定の行を、Vector3D オブジェクトにコピーします。
Matrix
  
createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
拡大 / 縮小、回転、平行移動に関するパラメーターなどがあります。
Matrix
  
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Graphics クラスの beginGradientFill() メソッドで使用する特定のスタイルを作成します。
Matrix
  
変換前の座標空間内のポイントが指定されると、そのポイントの変換後の座標を返します。
Matrix
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
  
各行列プロパティを null 変換になる値に設定します。
Matrix
  
元のマトリックスの逆の変換を実行します。
Matrix
 Inherited
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
  
Matrix オブジェクトに回転変換を適用します。
Matrix
  
行列に拡大 / 縮小の変換を適用します。
Matrix
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void
Matrix のメンバーを指定の値に設定します。
Matrix
 Inherited
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。
Object
  
Matrix オブジェクトのプロパティを列挙するテキスト値を返します。
Matrix
  
Matrix オブジェクトで表現される図形変換を、指定されたポイントに適用した結果を返します。
Matrix
  
行列を x 軸と y 軸に沿って、dx パラメーターと dy パラメーターで指定された量だけ平行移動します。
Matrix
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細

a

プロパティ
public var a:Number

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

イメージを拡大 / 縮小または回転するときに x 軸方向のピクセルの配置に影響を与える値です。


例  ( この例の使用方法 )
次の例では、Matrix オブジェクト myMatrix を作成し、a の値を設定します。
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.a);  // 1

myMatrix.a = 2;
trace(myMatrix.a);  // 2

b

プロパティ 
public var b:Number

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

イメージを回転または傾斜させるときに y 軸方向のピクセルの配置に影響を与える値です。


例  ( この例の使用方法 )
次の例では、Matrix オブジェクト myMatrix を作成し、b の値を設定します。
import flash.geom.Matrix;
 
var myMatrix:Matrix = new Matrix();
trace(myMatrix.b);  // 0

var degrees:Number = 30;
var radians:Number = (degrees/180) * Math.PI;
myMatrix.b = Math.tan(radians);
trace(myMatrix.b);  // 0.5773502691896257

c

プロパティ 
public var c:Number

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

イメージを回転または傾斜させるときに x 軸方向のピクセルの配置に影響を与える値です。


例  ( この例の使用方法 )
次の例では、Matrix オブジェクト myMatrix を作成し、c の値を設定します。
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.c);  // 0

var degrees:Number = 30;
var radians:Number = (degrees/180) * Math.PI;
myMatrix.c = Math.tan(radians);
trace(myMatrix.c);  // 0.5773502691896257

d

プロパティ 
public var d:Number

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

イメージを拡大 / 縮小または回転するときに y 軸方向のピクセルの配置に影響を与える値です。


例  ( この例の使用方法 )
次の例では、Matrix オブジェクト myMatrix を作成し、d の値を設定します。
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.d);  // 1

myMatrix.d = 2;
trace(myMatrix.d);  // 2

tx

プロパティ 
public var tx:Number

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

x 軸方向に各ポイントを平行移動する距離です。


例  ( この例の使用方法 )
次の例では、Matrix オブジェクト myMatrix を作成し、tx の値を設定します。
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.tx);  // 0

myMatrix.tx = 50;  // 50
trace(myMatrix.tx);

ty

プロパティ 
public var ty:Number

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

y 軸方向に各ポイントを平行移動する距離です。


例  ( この例の使用方法 )
次の例では、Matrix オブジェクト myMatrix を作成し、ty の値を設定します。
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.ty);  // 0

myMatrix.ty = 50;
trace(myMatrix.ty);  // 50
コンストラクターの詳細

Matrix

()コンストラクター
public function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)

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

指定されたパラメーターで新しい Matrix オブジェクトを作成します。行列表記の場合、プロパティは次のようになります。

u、v、w の前提値を示した Matrix クラスのプロパティのマトリックス表記

new Matrix() コンストラクターにパラメーターが指定されない場合は、次の値で構成される単位マトリックス(単位行列)を作成します。

a = 1
b = 0
c = 0
d = 1
tx = 0
ty = 0

行列表記の場合、単位行列は次のようになります。

Matrix クラスのプロパティのマトリックス表記

パラメーター
a:Number (default = 1) — イメージを拡大 / 縮小または回転するときに x 軸方向のピクセルの配置に影響を与える値です。
 
b:Number (default = 0) — イメージを回転または傾斜させるときに y 軸方向のピクセルの配置に影響を与える値です。
 
c:Number (default = 0) — イメージを回転または傾斜させるときに x 軸方向のピクセルの配置に影響を与える値です。
 
d:Number (default = 1) — イメージを拡大 / 縮小または回転するときに y 軸方向のピクセルの配置に影響を与える値です。
 
tx:Number (default = 0)x 軸方向に各ポイントを平行移動する距離です。
 
ty:Number (default = 0)y 軸方向に各ポイントを平行移動する距離です。

例  ( この例の使用方法 )

次の例では、matrix_1 を作成する際に Matrix() コンストラクターにパラメーターを渡していません。さらに、同じコンストラクターにパラメーターを渡して matrix_2 を作成しています。パラメーターを渡さずに作成した matrix_1 は、値(a=1, b=0, c=0, d=1, tx=0, ty=0)を持つ単位行列です。
import flash.geom.Matrix;

var matrix_1:Matrix = new Matrix();
trace(matrix_1);  // (a=1, b=0, c=0, d=1, tx=0, ty=0)

var matrix_2:Matrix = new Matrix(1, 2, 3, 4, 5, 6);
trace(matrix_2);  // (a=1, b=2, c=3, d=4, tx=5, ty=6)
メソッドの詳細

clone

()メソッド
public function clone():Matrix

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

新しい Matrix オブジェクトとして、このマトリックスのクローンを返します。含まれるオブジェクトはまったく同じコピーになります。

戻り値
Matrix — Matrix オブジェクトです。

concat

()メソッド 
public function concat(m:Matrix):void

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

マトリックスを現在のマトリックスと連結して、2 つのマトリックスの図形効果を効果的に組み合わせます。数学的に言うと、2 つのマトリックスを連結することは、マトリックスの乗算を使って組み合わせることと同じです。

例えば、行列 m1 はオブジェクトの大きさを 4 倍にし、行列 m2 はオブジェクトを 1.5707963267949(Math.PI/2)ラジアン回転する場合、m1.concat(m2) は、オブジェクトの大きさを 4 倍にし、そのオブジェクトを Math.PI/2 ラジアン回転する行列に m1 を変換します。

このメソッドは、連結された行列でソース行列を置き換えます。2 つのソース行列をどちらも変更せずに 2 つの行列を連結する場合は、クラスの例に示されているように、まず clone() メソッドを使用して、ソース行列をコピーします。

パラメーター

m:Matrix — ソースマトリックスに連結するマトリックスです。

copyColumnFrom

()メソッド 
public function copyColumnFrom(column:uint, vector3D:Vector3D):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 11, AIR 3.0, Flash Lite 4

Vector3D オブジェクトを、呼び出し元の Matrix3D オブジェクトの特定の列にコピーします。

パラメーター

column:uint — データのコピー元となる列です。
 
vector3D:Vector3D — データのコピー元となる Vector3D オブジェクトです。

copyColumnTo

()メソッド 
public function copyColumnTo(column:uint, vector3D:Vector3D):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 11, AIR 3.0, Flash Lite 4

呼び出し元の Matrix オブジェクトの特定の列を、Vector3D オブジェクトにコピーします。Vector3D オブジェクトの w エレメントは変更されません。

パラメーター

column:uint — データのコピー元となる列です。
 
vector3D:Vector3D — データのコピー元となる Vector3D オブジェクトです。

copyFrom

()メソッド 
public function copyFrom(sourceMatrix:Matrix):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 11, AIR 3.0, Flash Lite 4

すべてのマトリックスデータを、ソース Point オブジェクトから、呼び出し元の Matrix オブジェクトにコピーします。

パラメーター

sourceMatrix:Matrix — データのコピー元となる Matrix オブジェクトです。

copyRowFrom

()メソッド 
public function copyRowFrom(row:uint, vector3D:Vector3D):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 11, AIR 3.0, Flash Lite 4

Vector3D オブジェクトを、呼び出し元の Matrix オブジェクトの特定の行にコピーします。

パラメーター

row:uint — データのコピー元となる行です。
 
vector3D:Vector3D — データのコピー元となる Vector3D オブジェクトです。

copyRowTo

()メソッド 
public function copyRowTo(row:uint, vector3D:Vector3D):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 11, AIR 3.0, Flash Lite 4

呼び出し元の Matrix オブジェクトの特定の行を、Vector3D オブジェクトにコピーします。Vector3D オブジェクトの w エレメントは変更されません。

パラメーター

row:uint — データのコピー元となる行です。
 
vector3D:Vector3D — データのコピー元となる Vector3D オブジェクトです。

createBox

()メソッド 
public function createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void

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

拡大 / 縮小、回転、平行移動に関するパラメーターなどがあります。マトリックスに適用する際に、これらのパラメーターに基づいて、マトリックスの値を設定します。

createBox() メソッドを使用すると、identity()rotate()scale()translate() の各メソッドを続けて適用するのと効果が同じになる行列を取得できます。例えば、mat1.createBox(2,2,Math.PI/4,100,100) の効果は次のステートメントのものと同じです。

     import flash.geom.Matrix;
     
     var mat1:Matrix = new Matrix();
     mat1.identity();
     mat1.rotate(Math.PI/4);
     mat1.scale(2,2);
     mat1.translate(10,20);
     

パラメーター

scaleX:Number — 水平方向の拡大 / 縮小倍率です。
 
scaleY:Number — 垂直方向の拡大 / 縮小倍率です。
 
rotation:Number (default = 0) — 回転量(ラジアン単位)です。
 
tx:Number (default = 0)x 軸に沿って右方向に平行移動するピクセル数です。
 
ty:Number (default = 0)y 軸に沿って下方向に平行移動するピクセル数です。

関連する API エレメント


例  ( この例の使用方法 )

次の例では、myMatrix の x の尺度、y の尺度、回転、x の位置および y の位置を、createBox() メソッドを呼び出すことで設定しています。
package
{
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    public class Matrix_createBox extends Sprite
    {
        public function Matrix_createBox()
        {
             var myMatrix:Matrix = new Matrix();
             trace(myMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
             myMatrix.createBox(1, 2, Math.PI/4, 50, 100);
             trace(myMatrix.toString());  
             // (a=0.7071067811865476, b=1.414213562373095, c=-0.7071067811865475, 
             //  d=1.4142135623730951, tx=50, ty=100)
             
             var rectangleShape:Shape = createRectangle(20, 80, 0xFF0000);   
             addChild(rectangleShape);
              
             var rectangleTrans:Transform = new Transform(rectangleShape);
             rectangleTrans.matrix = myMatrix;
        }
        
        public function createRectangle(w:Number, h:Number, color:Number):Shape 
        {
            var rect:Shape = new Shape();
            rect.graphics.beginFill(color);
            rect.graphics.drawRect(0, 0, w, h);
            addChild(rect);
            return rect;
        }
    }
}

createGradientBox

()メソッド 
public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void

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

Graphics クラスの beginGradientFill() メソッドおよび lineGradientStyle() メソッドで使用する特定のスタイルを作成します。width と height は scaleXscaleY のペアで拡大 / 縮小されます。txty の値は、width と height の半分だけオフセットされます。

例えば、次の性質を持つグラデーションを作成するとします。

  • GradientType.LINEAR
  • グリーンとブルーの 2 色、ratios 配列を [0, 255] に設定
  • SpreadMethod.PAD
  • InterpolationMethod.LINEAR_RGB

パラメーターの異なる createGradientBox() メソッドを使用して定義された行列のグラデーションは、次の図のとおりです。

createGradientBox() の設定グラデーションの結果
width = 25;
     height = 25; 
     rotation = 0; 
     tx = 0; 
     ty = 0;
生成される線状グラデーション
width = 25; 
     height = 25; 
     rotation = 0; 
     tx = 25; 
     ty = 0;
生成される線状グラデーション
width = 50; 
     height = 50; 
     rotation = 0; 
     tx = 0; 
     ty = 0;
生成される線状グラデーション
width = 50;
     height = 50; 
     rotation = Math.PI / 4; // 45 degrees
     tx = 0; 
     ty = 0;
生成される線状グラデーション

パラメーター

width:Number — グラデーションボックスの幅です。
 
height:Number — グラデーションボックスの高さです。
 
rotation:Number (default = 0) — 回転量(ラジアン単位)です。
 
tx:Number (default = 0)x 軸に沿って右方向に平行移動(移動)する距離(ピクセル単位)です。この値は、width パラメーターの半分だけオフセットされます。
 
ty:Number (default = 0)y 軸に沿って下方向に平行移動(移動)する距離(ピクセル単位)です。この値は、height パラメーターの半分だけオフセットされます。

関連する API エレメント


例  ( この例の使用方法 )

次の例では、myMatrix の x の尺度、y の尺度、回転、x の位置および y の位置を、createBox() メソッドを呼び出すことで設定しています。
package
{
    import flash.display.GradientType;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    
    public class Matrix_createGradientBox extends Sprite
    {
        public function Matrix_createGradientBox()
        {
             var myMatrix:Matrix = new Matrix();
             trace(myMatrix.toString());          // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
             myMatrix.createGradientBox(200, 200, 0, 50, 50);
             trace(myMatrix.toString());          // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150)
             
             var colors:Array = [0xFF0000, 0x0000FF];
             var alphas:Array = [100, 100];
             var ratios:Array = [0, 0xFF];
             
             this.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix);
             this.graphics.drawRect(0, 0, 300, 200);
        }
    }
}

deltaTransformPoint

()メソッド 
public function deltaTransformPoint(point:Point):Point

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

変換前の座標空間内のポイントが指定されると、そのポイントの変換後の座標を返します。transformPoint() メソッドを使用して適用される通常の変換とは異なり、deltaTransformPoint() メソッドの変換では平行移動パラメーター txty が考慮されません。

パラメーター

point:Point — 行列変換の結果として得られるポイントです。

戻り値
Point — 行列変換を適用した結果のポイントです。

identity

()メソッド 
public function identity():void

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

各行列プロパティを null 変換になる値に設定します。単位行列を適用して変形したオブジェクトは、元のオブジェクトと同じになります。

identity() メソッドを呼び出すと、結果として得られる行列のプロパティは、a=1, b=0, c=0, d=1, tx=0, ty=0 になります。

行列表記の場合、単位行列は次のようになります。

Matrix クラスのプロパティのマトリックス表記

invert

()メソッド 
public function invert():void

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

元のマトリックスの逆の変換を実行します。逆マトリックスをオブジェクトに適用して、元のマトリックスの適用時に実行された変換を取り消すことができます。


例  ( この例の使用方法 )

次の例では、halfScaleMatrix を作成するために invert() メソッド(doubleScaleMatrix)を呼び出しています。その後、この 2 つのマトリックスが他方のマトリックスの逆マトリックス、つまり、他方のマトリックスで実行された変換を取り消すマトリックスであることを originalAndInverseMatrixnoScaleMatrix と同等)を作成することによって示します。
package
{
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    public class Matrix_invert extends Sprite
    {
        public function Matrix_invert()
        {
            var rect0:Shape = createRectangle(20, 80, 0xFF0000);   
            var rect1:Shape = createRectangle(20, 80, 0x00FF00);   
            var rect2:Shape = createRectangle(20, 80, 0x0000FF);
            var rect3:Shape = createRectangle(20, 80, 0x000000);
            
            var trans0:Transform = new Transform(rect0);
            var trans1:Transform = new Transform(rect1);
            var trans2:Transform = new Transform(rect2);
            var trans3:Transform = new Transform(rect3);
             
            var doubleScaleMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0);
            trans0.matrix = doubleScaleMatrix;
            trace(doubleScaleMatrix.toString());  // (a=2, b=0, c=0, d=2, tx=0, ty=0)
             
            var noScaleMatrix:Matrix = new Matrix(1, 0, 0, 1, 0, 0);
            trans1.matrix = noScaleMatrix;
            rect1.x = 50;
            trace(noScaleMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
            var halfScaleMatrix:Matrix = doubleScaleMatrix.clone();
            halfScaleMatrix.invert();
            trans2.matrix = halfScaleMatrix;
            rect2.x = 100;
            trace(halfScaleMatrix.toString());  // (a=0.5, b=0, c=0, d=0.5, tx=0, ty=0)
             
            var originalAndInverseMatrix:Matrix = doubleScaleMatrix.clone();
            originalAndInverseMatrix.concat(halfScaleMatrix);
            trans3.matrix = originalAndInverseMatrix;
            rect3.x = 150;
            trace(originalAndInverseMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)            
        }
        
        public function createRectangle(w:Number, h:Number, color:Number):Shape 
        {
            var rect:Shape = new Shape();
            rect.graphics.beginFill(color);
            rect.graphics.drawRect(0, 0, w, h);
            addChild(rect);
            return rect;
        }
    }
}

rotate

()メソッド 
public function rotate(angle:Number):void

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

Matrix オブジェクトに回転変換を適用します。

rotate() メソッドは、Matrix オブジェクトの abc および d の各プロパティを変更します。行列表記の場合、これは現在の行列を次の行列と連結することと同じです。

拡大 / 縮小メソッドのパラメーターのマトリックス表記

パラメーター

angle:Number — 回転角度(ラジアン単位)です。

scale

()メソッド 
public function scale(sx:Number, sy:Number):void

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

行列に拡大 / 縮小の変換を適用します。x 軸方向に sx 倍、y 軸方向に sy 倍に変更されます。

scale() メソッドは、Matrix オブジェクトの a プロパティと d プロパティを変更します。行列表記の場合、これは現在の行列を次の行列と連結することと同じです。

拡大 / 縮小メソッドのパラメーターのマトリックス表記

パラメーター

sx:Number — オブジェクトを x 軸方向に拡大 / 縮小するために使用される乗数です。
 
sy:Number — オブジェクトを y 軸方向に拡大 / 縮小するために使用される乗数です。

setTo

()メソッド 
public function setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 11, AIR 3.0, Flash Lite 4

Matrix のメンバーを指定の値に設定します。

パラメーター

aa:Number — マトリックスに設定する値です。
 
ba:Number
 
ca:Number
 
da:Number
 
txa:Number
 
tya:Number

toString

()メソッド 
public function toString():String

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

Matrix オブジェクトのプロパティを列挙するテキスト値を返します。

戻り値
String — Matrix オブジェクトのプロパティ(abcdtxty)の値が含まれるストリング。

transformPoint

()メソッド 
public function transformPoint(point:Point):Point

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

Matrix オブジェクトで表現される図形変換を、指定されたポイントに適用した結果を返します。

パラメーター

point:Point — 行列変換の結果として得られるポイントです。

戻り値
Point — 行列変換を適用した結果のポイントです。

translate

()メソッド 
public function translate(dx:Number, dy:Number):void

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

x 軸と y 軸に沿って、dx パラメーターと dy パラメーターで指定された量だけ行列を平行移動します。

パラメーター

dx:Numberx 軸に沿って右方向に移動する量(ピクセル単位)です。
 
dy:Numbery 軸に沿って下方向に移動する量(ピクセル単位)です。

MatrixExample.as

次の例では、MatrixExample クラスを使用してグラデーション塗りの大きな正方形を作成する方法を示します。これを行うには、以下の手順を実行します。
  1. 新しい Matrix オブジェクト myMatrix を作成し、trace() メソッドを使用して、myMatrix オブジェクトのプロパティのデフォルト値を出力します。
  2. アプリケーションは、createGradientBox() を、width および height のパラメーターを 200 ピクセル、回転なし、x 軸および y 軸に沿う平行移動距離を 50 ピクセルに設定して呼び出します。
  3. myMatrix オブジェクトを createGradientBox() の呼び出し後に再びプリントし、変更内容を表示します。
  4. 3 つの変数を設定してグラデーションボックスを塗る方法を制御します。
    • colors:グラデーションカラーを赤から青の範囲で設定します。
    • alphas:透明度を不透明に設定します。
    • ratios:カラーの分布を、赤と青が共に等しくなるように設定します。
  5. グラフィックメソッド beginGradientFill() を呼び出します。このメソッドは、myMatrix オブジェクトを操作し、lineTo() メソッドを呼び出して、グラデーション塗りの四角形を作成します。
package {
    import flash.geom.Matrix;
    import flash.display.Sprite;
    import flash.display.GradientType;

    public class MatrixExample extends Sprite {

        public function MatrixExample() {
            var myMatrix:Matrix = new Matrix();
            trace(myMatrix.toString());    // (a=1, b=0, c=0, d=1, tx=0, ty=0)

            myMatrix.createGradientBox(200, 200, 0, 50, 50);
            trace(myMatrix.toString());    // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150)

            var colors:Array = [0xFF0000, 0x0000FF];
            var alphas:Array = [1, 1];
            var ratios:Array = [0, 0xFF];
            graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix);
            graphics.lineTo(0, 300);
            graphics.lineTo(300, 300);
            graphics.lineTo(300, 0);
            graphics.lineTo(0, 0);
        }
    }
}




[ X ]英語で表示される理由
ActionScript 3.0 リファレンスガイドのコンテンツが英語で表示されます。

ActionScript 3.0 リファレンスガイドのすべての部分がすべての言語に翻訳されているわけではありません。言語エレメントが翻訳されていない場合、そのエレメントは英語で表示されます。例えば、ga.controls.HelpBox クラスはどの言語にも訳されていません。このため、リファレンスガイドの日本語バージョンでは、ga.controls.HelpBox クラスは英語で表示されます。