パスの描画
Flash Player 10 以降、Adobe AIR 1.5 以降
直線と曲線の描画に関する節(
線と曲線の描画
を参照)では、1 つの直線を描画するコマンド(
Graphics.lineTo()
)および曲線を描画するコマンド(
Graphics.curveTo()
)と、線を別の位置に移動してシェイプを形成するコマンド(
Graphics.moveTo()
)を紹介しました。
Graphics.drawPath()
メソッドおよび
Graphics.drawTriangles()
メソッドは、これらの同じ描画コマンドを表す一連のオブジェクトをパラメーターとして受け入れます。これらのメソッドにより、一連の
Graphics.lineTo()
、
Graphics.curveTo()
、または
Graphics.moveTo()
コマンドが、Flash ランタイムで単一のステートメントとして実行されます。
GraphicsPathCommand
列挙クラスでは、描画コマンドに対応する一連の定数を定義します。これら一連の定数を、Vector インスタンスでラップして、
Graphics.drawPath()
メソッドのパラメーターとして渡します。これにより、1 つのコマンドで、シェイプ全体または複数のシェイプをレンダリングできます。また、これらのメソッドに渡す値を変えて、既存のシェイプを変更することもできます。
描画コマンドの Vector に加えて、
drawPath()
メソッドには、各描画コマンドの座標に対応する一連の座標も必要です。座標(Number インスタンス)を含む Vector インスタンスを作成し、
drawPath()
メソッドに、2 つ目の(
data
)引数として渡します。
注意:
ベクター内の値は Point オブジェクトではありません。ベクターを一連の数値であり、2 つの数値からなる各グループが、1 つの x/y 座標ペアを表します。
Graphics.drawPath()
メソッドは、各コマンドとそれに対応するポイントの値(2 つまたは 4 つの値のコレクション)を一致させて、Graphics オブジェクトにパスを生成します。
package
{
import flash.display.*;
public class DrawPathExample extends Sprite
{
public function DrawPathExample(){
var squareCommands:Vector.<int> = new Vector.<int>(5, true);
squareCommands[0] = GraphicsPathCommand.MOVE_TO;
squareCommands[1] = GraphicsPathCommand.LINE_TO;
squareCommands[2] = GraphicsPathCommand.LINE_TO;
squareCommands[3] = GraphicsPathCommand.LINE_TO;
squareCommands[4] = GraphicsPathCommand.LINE_TO;
var squareCoord:Vector.<Number> = new Vector.<Number>(10, true);
squareCoord[0] = 20; //x
squareCoord[1] = 10; //y
squareCoord[2] = 50;
squareCoord[3] = 10;
squareCoord[4] = 50;
squareCoord[5] = 40;
squareCoord[6] = 20;
squareCoord[7] = 40;
squareCoord[8] = 20;
squareCoord[9] = 10;
graphics.beginFill(0x442266);//set the color
graphics.drawPath(squareCommands, squareCoord);
}
}
}
|
|
|