パッケージ | flash.geom |
クラス | public class Matrix |
継承 | Matrix Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
matrix
プロパティに適用し、次に Transform オブジェクトを表示オブジェクトの transform
プロパティとして適用することで、表示オブジェクトに対する各種グラフィック変換を実行できます。これらの変換機能には、平行移動(x と y の位置変更)、回転、拡大 / 縮小、傾斜などが含まれます。
このような変換を「アフィン変換」と言います。アフィン変換では、変換中に線分の直線性が保たれるため、平行線は平行のままになります。
変換行列を表示オブジェクトに適用するには、Transform オブジェクトを作成して、そのオブジェクトの matrix
プロパティを変換行列に設定し、表示オブジェクトの transform
プロパティに Transform オブジェクトを設定します。Matrix オブジェクトは、次のようないくつかのメソッドのパラメーターとしても使用します。
- BitmapData オブジェクトの
draw()
メソッド - Graphics オブジェクトの
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 オブジェクトを作成する必要があります。
さらに例を参照
関連する API エレメント
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 | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
d : Number
イメージを拡大 / 縮小または回転するときに y 軸方向のピクセルの配置に影響を与える値です。 | Matrix | ||
tx : Number
x 軸方向に各ポイントを平行移動する距離です。 | Matrix | ||
ty : Number
y 軸方向に各ポイントを平行移動する距離です。 | Matrix |
メソッド | 定義元 | ||
---|---|---|---|
指定されたパラメーターで新しい Matrix オブジェクトを作成します。 | Matrix | ||
新しい Matrix オブジェクトとして、このマトリックスのクローンを返します。含まれるオブジェクトはまったく同じコピーになります。 | Matrix | ||
マトリックスを現在のマトリックスと連結して、2 つのマトリックスの図形効果を効果的に組み合わせます。 | Matrix | ||
Vector3D オブジェクトを、呼び出し元の Matrix3D オブジェクトの特定の列にコピーします。 | Matrix | ||
呼び出し元の Matrix オブジェクトの特定の列を、Vector3D オブジェクトにコピーします。 | Matrix | ||
すべてのマトリックスデータを、ソース Point オブジェクトから、呼び出し元の Matrix オブジェクトにコピーします。 | Matrix | ||
Vector3D オブジェクトを、呼び出し元の Matrix オブジェクトの特定の行にコピーします。 | Matrix | ||
呼び出し元の Matrix オブジェクトの特定の行を、Vector3D オブジェクトにコピーします。 | 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 | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
Matrix オブジェクトのプロパティを列挙するテキスト値を返します。 | Matrix | ||
Matrix オブジェクトで表現される図形変換を、指定されたポイントに適用した結果を返します。 | Matrix | ||
行列を x 軸と y 軸に沿って、dx パラメーターと dy パラメーターで指定された量だけ平行移動します。 | Matrix | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
a | プロパティ |
public var a:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
イメージを拡大 / 縮小または回転するときに 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 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
イメージを回転または傾斜させるときに 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 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
イメージを回転または傾斜させるときに 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 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
イメージを拡大 / 縮小または回転するときに 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 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
x 軸方向に各ポイントを平行移動する距離です。
例 ( この例の使用方法 )
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 軸方向に各ポイントを平行移動する距離です。
例 ( この例の使用方法 )
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 オブジェクトを作成します。行列表記の場合、プロパティは次のようになります。
new 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 | () | メソッド |
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 | () | メソッド |
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 | () | メソッド |
copyRowFrom | () | メソッド |
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 は scaleX
と scaleY
のペアで拡大 / 縮小されます。tx
と ty
の値は、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()
メソッドの変換では平行移動パラメーター tx
と ty
が考慮されません。
パラメーター
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 になります。
行列表記の場合、単位行列は次のようになります。
invert | () | メソッド |
public function invert():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
元のマトリックスの逆の変換を実行します。逆マトリックスをオブジェクトに適用して、元のマトリックスの適用時に実行された変換を取り消すことができます。
例 ( この例の使用方法 )
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 | () | メソッド |
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 | () | メソッド |
toString | () | メソッド |
transformPoint | () | メソッド |
translate | () | メソッド |
MatrixExample
クラスを使用してグラデーション塗りの大きな正方形を作成する方法を示します。これを行うには、以下の手順を実行します。
- 新しい Matrix オブジェクト
myMatrix
を作成し、trace()
メソッドを使用して、myMatrix
オブジェクトのプロパティのデフォルト値を出力します。 - アプリケーションは、
createGradientBox()
を、width
およびheight
のパラメーターを 200 ピクセル、回転なし、x 軸および y 軸に沿う平行移動距離を 50 ピクセルに設定して呼び出します。 myMatrix
オブジェクトをcreateGradientBox()
の呼び出し後に再びプリントし、変更内容を表示します。- 3 つの変数を設定してグラデーションボックスを塗る方法を制御します。
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 = [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); } } }
Tue Jun 12 2018, 10:34 AM Z