| パッケージ | flash.geom |
| クラス | public class Matrix |
| 継承 | Matrix Object |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
matrix プロパティに適用し、次に Transform オブジェクトを表示オブジェクトの transform プロパティとして適用することで、表示オブジェクトに対する各種グラフィック変換を実行できます。これらの変換機能には、平行移動 (x と y の位置変更)、回転、拡大 / 縮小、傾斜などが含まれます。
このような変換をアフィン変換と言います。アフィン変換では、変換中に線分の直線性が保たれるため、平行線は平行のままになります。
変換行列を表示オブジェクトに適用するには、Transform オブジェクトを作成して、そのオブジェクトの matrix プロパティを変換行列に設定し、表示オブジェクトの transform プロパティに Transform オブジェクトを設定します。Matrix オブジェクトは、次のようないくつかのメソッドのパラメータとしても使用します。
draw() メソッドbeginBitmapFill() メソッド、beginGradientFill() メソッドまたは lineGradientStyle() メソッド変換行列オブジェクトは、次の内容を備えた 3 × 3 の行列です。

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

Matrix オブジェクトの他の 6 つのプロパティ、a、b、c、d、tx、および ty の値をすべて取得および設定できます。
Matrix クラスは、主要な 4 種類の変換機能 (平行移動、拡大 / 縮小、回転、傾斜) に対応しています。専用メソッドを使用して、これらのうち 3 つの変換機能を設定できます。以下の表に示します。
| 変換 | メソッド | 行列の値 | 表示結果 | 概要 |
|---|---|---|---|---|
| 平行移動 (変位) | translate(tx, ty) | ![]() | ![]() | イメージを右に tx ピクセル、下に ty ピクセル移動します。 |
| 拡大 / 縮小 | scale(sx, sy) | ![]() | ![]() | 各ピクセルの位置を x 軸方向に sx 倍、y 軸方向に sy 倍することで、イメージの大きさを変更します。 |
| 回転 | rotate(q) | ![]() | ![]() | イメージを角度 q (単位はラジアン) だけ回転します。 |
| 傾斜または変形 | なし。プロパティ b と c に設定する必要があります。 | ![]() | ![]() | x 軸または y 軸に平行な方向にイメージをスライドします。Matrix オブジェクトの b プロパティは、y 軸に沿った傾斜角度のタンジェントを表し、Matrix オブジェクトの c プロパティは、x 軸に沿った傾斜角度のタンジェントを表します。 |
効果的に複数の変換を組み合わせることができるように、変換関数はそれぞれ現在の行列プロパティを変更します。これを行うには、対象の表示オブジェクトの transform プロパティを使用して行列を適用する前に、複数の変換関数を呼び出します。
Matrix オブジェクトのメソッドを呼び出す前に、new Matrix() コンストラクタを使用して Matrix オブジェクトを作成する必要があります。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
| a : Number
Matrix オブジェクトの 1 行 1 列目の値です。イメージの拡大 / 縮小や回転を行う際に、x 軸方向のピクセルの位置に影響を与えます。
| Matrix | ||
| b : Number
Matrix オブジェクトの 1 行 2 列目の値です。イメージの回転や傾斜を行う際に、y 軸方向のピクセルの位置に影響を与えます。
| Matrix | ||
| c : Number
Matrix オブジェクトの 2 行 1 列目の値です。イメージの回転や傾斜を行う際に、x 軸方向のピクセルの位置に影響を与えます。
| Matrix | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
| d : Number
Matrix オブジェクトの 2 行 2 列目の値です。イメージの拡大 / 縮小や回転を行う際に、y 軸方向のピクセルの位置に影響を与えます。
| Matrix | ||
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| tx : Number
x 軸方向に各ポイントを平行移動する距離です。
| Matrix | ||
| ty : Number
y 軸方向に各ポイントを平行移動する距離です。
| Matrix | ||
| メソッド | 定義元 | ||
|---|---|---|---|
|
指定されたパラメータで新しい Matrix オブジェクトを作成します。
| Matrix | ||
|
新しい Matrix オブジェクトとして、この行列のクローンを返します。含まれるオブジェクトはまったく同じコピーになります。
| Matrix | ||
|
行列を現在の行列と連結して、2 つの行列の図形効果を効果的に組み合わせます。
| Matrix | ||
|
拡大 / 縮小、回転、平行移動に関するパラメータなどがあります。
| Matrix | ||
|
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Graphics クラスの beginGradientFill() メソッドで使用する特定のスタイルを作成します。
| Matrix | ||
|
変換前の座標空間内のポイントが指定されると、そのポイントの変換後の座標を返します。
| Matrix | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
|
各行列プロパティを null 変換になる値に設定します。
| Matrix | ||
|
元の行列の逆の変形を実行します。
| Matrix | ||
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
|
Matrix オブジェクトに回転変換を適用します。
| Matrix | ||
|
行列に拡大 / 縮小の変換を適用します。
| Matrix | ||
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
|
Matrix オブジェクトのプロパティのリストを表すテキスト値を返します。
| Matrix | ||
|
Matrix オブジェクトで表現される図形変換を、指定されたポイントに適用したことによって値を返します。
| Matrix | ||
|
行列を x 軸と y 軸に沿って、dx パラメータと dy パラメータで指定された量だけ平行移動します。
| Matrix | ||
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
| a | プロパティ |
public var a:Number
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
Matrix オブジェクトの 1 行 1 列目の値です。イメージの拡大 / 縮小や回転を行う際に、x 軸方向のピクセルの位置に影響を与えます。
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 |
| Player のバージョン : | Flash Player 9 |
Matrix オブジェクトの 1 行 2 列目の値です。イメージの回転や傾斜を行う際に、y 軸方向のピクセルの位置に影響を与えます。
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 |
| Player のバージョン : | Flash Player 9 |
Matrix オブジェクトの 2 行 1 列目の値です。イメージの回転や傾斜を行う際に、x 軸方向のピクセルの位置に影響を与えます。
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 |
| Player のバージョン : | Flash Player 9 |
Matrix オブジェクトの 2 行 2 列目の値です。イメージの拡大 / 縮小や回転を行う際に、y 軸方向のピクセルの位置に影響を与えます。
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 |
| Player のバージョン : | Flash Player 9 |
x 軸方向に各ポイントを平行移動する距離です。これは、Matrix オブジェクトの 1 行 3 列目の値に相当します。
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 |
| Player のバージョン : | Flash Player 9 |
y 軸方向に各ポイントを平行移動する距離です。これは、Matrix オブジェクトの 2 行 3 列目の値に相当します。
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 |
| Player のバージョン : | Flash Player 9 |
指定されたパラメータで新しい Matrix オブジェクトを作成します。行列表記の場合、プロパティは次のようになります。

new Matrix() コンストラクタにパラメータが指定されない場合は、次の値で構成される単位マトリックス (単位行列) を作成します。
a = 1 | b = 0 |
c = 0 | d = 1 |
tx = 0 | ty = 0 |
行列表記の場合、単位行列は次のようになります。

a:Number (default = 1) — 新しい Matrix オブジェクトの 1 行 1 列目の値です。
|
|
b:Number (default = 0) — 新しい Matrix オブジェクトの 1 行 2 列目の値です。
|
|
c:Number (default = 0) — 新しい Matrix オブジェクトの 2 行 1 列目の値です。
|
|
d:Number (default = 1) — 新しい Matrix オブジェクトの 2 行 2 列目の値です。
|
|
tx:Number (default = 0) — 新しい Matrix オブジェクトの 1 行 3 列目の値です。
|
|
ty:Number (default = 0) — 新しい Matrix オブジェクトの 2 行 3 列目の値です。
|
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 |
| Player のバージョン : | Flash Player 9 |
新しい Matrix オブジェクトとして、この行列のクローンを返します。含まれるオブジェクトはまったく同じコピーになります。
戻り値Matrix — Matrix オブジェクト。
|
| concat | () | メソッド |
public function concat(m:Matrix):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
行列を現在の行列と連結して、2 つの行列の図形効果を効果的に組み合わせます。数学的に言うと、2 つのマトリックスを連結することは、マトリックスの乗算を使って組み合わせることと同じです。
たとえば、行列 m1 はオブジェクトの大きさを 4 倍にし、行列 m2 はオブジェクトを 1.5707963267949 (Math.PI/2) ラジアン回転する場合、m1.concat(m2) は、オブジェクトの大きさを 4 倍にし、そのオブジェクトを Math.PI/2 ラジアン回転する行列に m1 を変換します。
このメソッドは、連結された行列でソース行列を置き換えます。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 |
| Player のバージョン : | Flash Player 9 |
拡大 / 縮小、回転、平行移動に関するパラメータなどがあります。行列に適用する際に、これらのパラメータに基づいて、行列の値を設定します。
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 軸に沿って下方向に平行移動 (移動) するピクセル数です。
|
関連項目
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 |
| Player のバージョン : | Flash Player 9 |
Graphics クラスの beginGradientFill() メソッドおよび lineGradientStyle() メソッドで使用する特定のスタイルを作成します。width と height は scaleX と scaleY のペアで拡大 / 縮小されます。tx と ty の値は、width と height の半分だけオフセットされます。
たとえば、次の性質を持つグラデーションを作成するとします。
GradientType.LINEAR[0, 255] に設定SpreadMethod.PADInterpolationMethod.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°
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 |
| Player のバージョン : | Flash Player 9 |
変換前の座標空間内のポイントが指定されると、そのポイントの変換後の座標を返します。transformPoint() メソッドを使用して適用される通常の変換とは異なり、deltaTransformPoint() メソッドの変換では平行移動パラメータ tx と ty が考慮されません。
パラメータ
point:Point — 行列変換の結果として得られるポイントです。
|
Point — 行列変換を適用した結果のポイントです。
|
| identity | () | メソッド |
public function identity():void
| Player のバージョン : | Flash Player 9 |
各行列プロパティを null 変換になる値に設定します。単位行列を適用して変形したオブジェクトは、元のオブジェクトと同じになります。
identity() メソッドを呼び出すと、結果として得られる行列のプロパティは、a=1, b=0, c=0, d=1, tx=0, ty=0 になります。
行列表記の場合、単位行列は次のようになります。

| invert | () | メソッド |
public function invert():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
元の行列の逆の変形を実行します。逆行列をオブジェクトに適用して、元の行列の適用時に実行された変換を取り消すことができます。
halfScaleMatrix を作成するために invert() メソッド (doubleScaleMatrix) を呼び出しています。その後、この 2 つのマトリックスが他方のマトリックスの逆マトリックス、つまり、他方のマトリックスで実行された変換を取り消すマトリックスであることを originalAndInverseMatrix (noScaleMatrix と同等) を作成することによって示します。
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 |
| Player のバージョン : | Flash Player 9 |
Matrix オブジェクトに回転変換を適用します。
rotate() メソッドは、Matrix オブジェクトの a、b、c および d の各プロパティを変更します。行列表記の場合、これは現在の行列を次の行列と連結することと同じです。

パラメータ
angle:Number — 回転角度 (ラジアン単位) です。
|
関連項目
| scale | () | メソッド |
public function scale(sx:Number, sy:Number):void
| Player のバージョン : | 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 |
| Player のバージョン : | Flash Player 9 |
Matrix オブジェクトのプロパティのリストを表すテキスト値を返します。
戻り値String — Matrix オブジェクトのプロパティ (a、b、c、d、tx、ty) の値が含まれるストリング。
|
| transformPoint | () | メソッド |
public function transformPoint(point:Point):Point
| Player のバージョン : | Flash Player 9 |
Matrix オブジェクトで表現される図形変換を、指定されたポイントに適用したことによって値を返します。
パラメータ
point:Point — 行列変換の結果として得られるポイントです。
|
Point — 行列変換を適用した結果のポイントです。
|
| translate | () | メソッド |
public function translate(dx:Number, dy:Number):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
x 軸と y 軸に沿って、dx パラメータと dy パラメータで指定された量だけ行列を平行移動します。
パラメータ
dx:Number — x 軸に沿って右方向に移動する量 (ピクセル単位) です。
|
|
dy:Number — y 軸に沿って下方向に移動する量 (ピクセル単位) です。
|
関連項目
MatrixExample クラスを使用してグラデーション塗りの大きな正方形を作成する方法を示します。これを行うには、以下の手順を実行します。
myMatrix を作成し、trace() メソッドを使用して、myMatrix オブジェクトのプロパティのデフォルト値を出力します。createGradientBox() を、width および height のパラメータを 200 ピクセル、回転なし、x 軸および y 軸に沿う平行移動距離を 50 ピクセルに設定して呼び出します。myMatrix オブジェクトを createGradientBox() の呼び出し後に再びプリントし、変更内容を表示します。colors : グラデーションカラーを赤から青の範囲で設定します。alphas : 透明度を不透明に設定します。ratios : カラーの分布を、赤と青が共に等しくなるように設定します。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);
}
}
}
RSS フィード | このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/geom/Matrix.html
Comments
mmjp_ps が Feb 12, 2008 の 5:21 PM に追加: