www.taako.com

ホームに戻る

mail

■FlashMX 描画API

FlashMXのトライアル版で色々遊んでます。新機能は欲しかったもの(何で無かったのか理解不能なもの)が多く、期待しているのですが、 今日はActionScriptの新機能描画APIで遊んで見ましょう。線や曲線が引けるシンプルなものですが、その可能性や絶大なものがあります。 そもそも私のFlashに興味を持った理由は「Flashで円グラフは描けないか?」というテーマからなんです。ダイナミックにグラフを表現する 手段としてjavaアプレットなどがありますが敷居も高いし、フラッシュで出来たらきっと素敵でかっちょいい動きが見せれるに違いないと 思ったんです。で色々試してみたんですが、Flash5ではちょっと限界があって結局挫折していました。で、今回の新機能。もっとも待ち望んでいたものです。 円をダイナミックに描画してグラフを完成させてやるぜー。しかも都合のいいことに、リファレンスにいいものを発見。

次の例では、極細の青の実線と赤の塗りで円を描画します。

_root.createEmptyMovieClip( "circle", 1 );
with ( _root.circle )
{
	lineStyle( 0, 0x0000FF, 100 );
	beginFill( 0xFF0000 );
	moveTo( 500, 500 );
	curveTo( 600, 500, 600, 400 );
	curveTo( 600, 300, 500, 300 );
	curveTo( 400, 300, 400, 400 );
	curveTo( 400, 500, 500, 500 );
	endFill();
}

まさにそれですよ。私が求めていたものは。ちょっと座標を変えて早速動かしてみましょう。(緑をクリック)

・・・。円ですか?これ。Macromediaさんに小一時間問い詰めたい感じです。誰がどうみても「円」じゃないじゃん。「丸」描きますぐらいにしとけよ。結局色々努力してみたものの、このMovieClip.curveTo() を使って正円を描くことは不可能であることが判明。挫折です。チクショー。basicにあったcircleみたいなの作ってくれよー。MovieClip.curveTo()の必要性が見当たらないよ。そして円グラフへの夢はまだまだ続く。

努力の結果


努力ソースはこれ。正円を描くことは仕様上、不可能と判明。

コントロール座標を微妙に調節してみた。9の根拠なし。

_root.createEmptyMovieClip( "circle", 1 );
with ( _root.circle )
{
	var x=200;
	var y=225;
	var d=9;
	lineStyle( 0, 0x0000FF, 100 );
	beginFill( 0xFF0000 );
	moveTo( x, y );

	curveTo( x+100-d, y-d, x+100, y-100 );
	curveTo( x+100-d, y-200+d, x, y-200 );
	curveTo( x-100+d, y-200+d, x-100, y-100 );
	curveTo( x-100+d, y-d, x, y );
	endFill();
}

(2002.4.3)
この文書についての意見、感想、ご指摘はメールにて承っております。
©www.taako.com