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

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

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

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

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

変換行列オブジェクトは、次の内容を備えた 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) 拡大 / 縮小メソッドのパラメータのマトリックス表記 拡大 / 縮小メソッドの効果を示す図 各ピクセルの位置を sxx 軸方向に 倍、syy 軸方向に 倍することで、イメージの大きさを変更します。
回転 rotate(q) 回転メソッドのプロパティのマトリックス表記 回転メソッドの効果を示す図 イメージを角度 q(単位はラジアン)だけ回転します。
傾斜または変形 なし。プロパティ bc に設定する必要があります。 傾斜機能のプロパティのマトリックス表記 傾斜機能の効果を示す図 x 軸または y 軸に平行な方向にイメージをスライドします。Matrix オブジェクトの b プロパティは、y 軸に沿った傾斜角度のタンジェントを表し、Matrix オブジェクトの c プロパティは、x 軸に沿った傾斜角度のタンジェントを表します。

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

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

例を表示

関連項目

flash.display.DisplayObject.transform
flash.geom.Transform
flash.display.BitmapData.draw()
flash.display.Graphics.beginBitmapFill()
flash.display.Graphics.beginGradientFill()
flash.display.Graphics.lineGradientStyle()


パブリックプロパティ
 プロパティ定義元
  a : Number
イメージを拡大 / 縮小または回転するときに x 軸方向のピクセルの配置に影響を与える値です。
Matrix
  b : Number
イメージを回転または傾斜させるときに y 軸方向のピクセルの配置に影響を与える値です。
Matrix
  c : Number
イメージを回転または傾斜させるときに x 軸方向のピクセルの配置に影響を与える値です。
Matrix
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  d : Number
イメージを拡大 / 縮小または回転するときに y 軸方向のピクセルの配置に影響を与える値です。
Matrix
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  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
  
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
  
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

イメージを拡大 / 縮小または回転するときに 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

イメージを回転または傾斜させるときに 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

イメージを回転または傾斜させるときに 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

イメージを拡大 / 縮小または回転するときに 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

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

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

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

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

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

a = 1b = 0c = 0d = 1tx = 0ty = 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

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

戻り値
Matrix — Matrix オブジェクトです。
concat()メソッド 
public function concat(m:Matrix):void

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

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

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

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

パラメータ

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

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

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

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

     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 軸に沿って下方向に平行移動するピクセル数です。

関連項目




次の例では、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=100, ty=200)
             
             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

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

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

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

createGradientBox() settingsグラデーションの結果
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 パラメータの半分だけオフセットされます。

関連項目




次の例では、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

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

パラメータ

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

戻り値
Point — 行列変換を適用した結果のポイントです。
identity()メソッド 
public function identity():void

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

各行列プロパティを 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

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




次の例では、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

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

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

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

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

パラメータ

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

関連項目

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

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

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

戻り値
String — Matrix オブジェクトのプロパティ(abcdtx および ty)の値が含まれるストリング。
transformPoint()メソッド 
public function transformPoint(point:Point):Point

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

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

パラメータ

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

戻り値
Point — 行列変換を適用した結果のポイントです。
translate()メソッド 
public function translate(dx:Number, dy:Number):void

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

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 = [100, 100];
            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);
        }
    }
}




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/geom/Matrix.html