graphics.drawPath (3)
2009/06/01 21:00 - AS3.0
graphics.drawPath の第1引数で指定する線種のコマンドについて、今まで GraphicsPathCommand.LINE_TO の例と GraphicsPathCommand.CURVE_TO の例について見てみました。
ところでこのコマンド、ライブヘルプの当該項目によると何かヘンテコなものがあるじゃあありませんか。 WIDE_LINE_TO と WIDE_MOVE_TO ってヤツ。ワイドって何ねん。太い線なん?
説明を読むとそれぞれ以下のように書いてあります。
「line to」描画コマンドを指定しますが、1 つではなく 2 つの座標セット(4 つの値)を使用します。このコマンドを使用すると、各コマンドで使用されるデータ値の数を変更することなく、「line to」コマンドと「curve to」コマンドを切り替えられるようになります。このコマンドは、データベクター内の 2 つのセット、つまり、1 つのダミー位置と 1 つの(x,y)位置を使用します。
「move to」描画コマンドを指定しますが、1 つではなく 2 つの座標セット(4 つの値)を使用します。このコマンドを使用すると、各コマンドで使用されるデータ値の数を変更することなく、「move to」コマンドと「curve to」コマンドを切り替えられるようになります。このコマンドは、データベクター内の 2 つのセット、つまり、1 つのダミー位置と 1 つの(x,y)位置を使用します。
なんと graphics.drawPath の第2引数である座標格納 Vector を変更するとこなく、第1引数の Vector に格納されるコマンドの "lineTo" や "moveTo" と "curveTo" を切り替えるとな?
そんな需要あるんかいな、という気がせんでもないが、実際どういうふうになるのかコーディングしてみました。
順を追ってまずは MOVE_TO と WIDE_LINE_TO の組み合わから。
赤い円がアンカーとなり、青い円は線に一切影響しなくなりました。 ってことは、上の WIDE_LINE_TO の説明にあるダミーというのは4つ消費する値のうち、前2者ということですかね。
次は WIDE_MOVE_TO と WIDE_LINE_TO を組み合わせたものです。
今度は青い円がアンカーになり、赤い円が線に影響を与えなくなりました。
最後にいよいよ MOVE_TO から始まる線の描画で、WIDE_LINE_TO と CURVE_TO の切り替えてみます。
コードを見ていただくとお分かりのとおり、drawPath の第2引数 anchorVector は最初の定義のあと一切変更していません。
たしかに見た目、"lineTo" と "curveTo" が切り替わってますねー。
しかし今一度私は問いたい。このような機能に果たして需要があるのかを。
関連エントリー