IGraphicsData インスタンスのコレクションを作成したら、Graphics クラスの
drawGraphicsData()
メソッドを使用してグラフィックスをレンダリングします。
drawGraphicsData()
メソッドでは、IGraphicsData インスタンスのベクターから順番に一連の描画手順が実行されます。
// stroke object
var stroke:GraphicsStroke = new GraphicsStroke(3);
stroke.joints = JointStyle.MITER;
stroke.fill = new GraphicsSolidFill(0x102020);// solid stroke
// fill object
var fill:GraphicsGradientFill = new GraphicsGradientFill();
fill.colors = [0x0000FF, 0xEEFFEE];
fill.matrix = new Matrix();
fill.matrix.createGradientBox(70, 70, Math.PI/2);
// path object
var path:GraphicsPath = new GraphicsPath(new Vector.<int>(), new Vector.<Number>());
path.commands.push(GraphicsPathCommand.MOVE_TO, GraphicsPathCommand.LINE_TO, GraphicsPathCommand.LINE_TO);
path.data.push(125,0, 50,100, 175,0);
// combine objects for complete drawing
var drawing:Vector.<IGraphicsData> = new Vector.<IGraphicsData>();
drawing.push(stroke, fill, path);
// draw the drawing
graphics.drawGraphicsData(drawing);
例の描画で使用されているパスの値を 1 つ変更すると、シェイプを複数回再描画してさらに複雑なイメージを作成できます。
// draw the drawing multiple times
// change one value to modify each variation
graphics.drawGraphicsData(drawing);
path.data[2] += 200;
graphics.drawGraphicsData(drawing);
path.data[2] -= 150;
graphics.drawGraphicsData(drawing);
path.data[2] += 100;
graphics.drawGraphicsData(drawing);
path.data[2] -= 50;graphicsS.drawGraphicsData(drawing);
IGraphicsData オブジェクトでは塗りと境界線のスタイルを定義できますが、これらのスタイルは必ずしも必要ありません。つまり、Graphics クラスのメソッドを使用してスタイルを設定し、IGraphicsData オブジェクトを使用して保存されているパスのコレクションを描画したり、その逆のことを行ったりできます。
注意:
新しい描画を開始する前に、
Graphics.clear()
メソッドを使用して以前の描画をクリアします。そうしないと、前の例のように、元の描画の上に新しい描画が追加されます。IGraphicsData オブジェクトのパスまたはコレクションの単一の部分を変更した場合は、変更を表示するために全体を再描画します。
グラフィックスデータクラスを使用した場合、3 つ以上のポイントが描画されると、その時点でシェイプが閉じるので、常に塗りがレンダリングされます。塗りが閉じても、境界線は閉じません。この動作は、複数の
Graphics.lineTo()
または
Graphics.moveTo()
コマンドを使用するときと異なります。