graphics.drawPath (2)
2009/05/31 18:06 - AS3.0
graphics.drawPath メソッドは以下のとおり3つの引数を取ります。
それぞれ以下のようなものです。
- 第1引数:描画する線種を格納した Vector
- 第2引数:線のアンカーや曲線のコントローラになる座標を格納した Vector
- 第3引数:今回は関係なさそうなので割愛
第1引数は線種を格納しますが、"lineTo" や "curveTo" といった文字列を格納するのではなく、GraphicsPathCommand クラス で定義されているコマンドを表す整数を格納します。
第2引数に格納される座標というのはは、もちろんX座標、Y座標なわけですが、Point のようなひとまとめにしたものを Vector に格納するのではありません。 X座標とY座標を順番に Vector に格納していきます。
つまり、Vector の奇数番目(第0要素、第2要素、第4要素……)に格納されるのがX座標で、偶数番目(第1要素、第3要素、第5要素……)がY座標になります。
そして第0要素と第1要素のペアで一つのアンカー、第2要素と第3要素で一つのアンカー…… といった具合です。
詳細はライブヘルプの当該項目を参照ください。
前回は graphics.drawPath の第1引数である Vector の要素を全て GraphicsPathCommand.LINE_TO に指定した例を見てみました。
おっと、すべての要素というのは厳密に言うと違いますね。 第0要素は線描画の開始座標を指定する graphics.moveTo であるところの GraphicsPathCommand.MOVE_TO です。
で、今回見てみるのは前回の LINE_TO を単純に CURVE_TO に入れ替えただけ。
GraphicsPathCommand.LINE_TO の場合、第2引数で指定した座標はすべてアンカーの座標になるので、第2引数からはX座標・Y座標をそれぞれ1つずつ、つまり Vector からは2つずつ値が消費されます。
しかし、今回は graphics.curveTo に該当する GraphicsPathCommand.CURVE_TO の事例です。
"curveTo" はご存じのとおりコントローラとアンカーを必要とします。つまりX座標・Y座標をそれぞれ2つずつ、つまり Vector からは4つずつ値が消費されることになります。
なので前回、線の数である第1引数の length は10(線の数それ自体は9だけど、"moveTo" の分があるので10)でしたが、今回は5に減ります。
また座標はアンカー、コントローラー、アンカー、コントローラーと交互に切り替わり、しかもアンカーで終わる必要があるので、最後の点は省きました。
アンカーとコントローラーは色で区別してあります。
関連エントリー