1/25
drawCircle等を検証 - AS3
グラフとか書くときに手軽に書けるdraw系の関数で不思議ちゃんな動きをしたので調べてみました。
とりあえずdrawCircleとdrawRectの二つです。
drawCircleをほぼ同じ位置に描く
さてどうなることやら?。var testSprite:Sprite = new Sprite(); var testSprite_g:Graphics = testSprite.graphics; testSprite_g.beginFill(0x000000, 1); testSprite_g.drawCircle(50, 50, 20); testSprite_g.drawCircle(60, 60, 20);
普通こう書いてあれば円が2個できるだけかと思いきや?
というふうに中がくり抜かれる。buttomMode = true;を追加してMouseEventを入れてみたところくり抜かれた部分は反応しなかった。
というわけで同じ位置に描くと消える現象に悩まされてたってわけです。
解決策はこんな感じ
testSprite_g.beginFill(0x000000, 1); testSprite_g.drawCircle(50, 50, 20); testSprite_g.endFill(); testSprite_g.beginFill(0x000000, 1); testSprite_g.drawCircle(60, 60, 20); testSprite_g.endFill();
endFill();を書いてbeginFill(0x000000, 1);を書くと解決!
endFill();を省略してbeginFill(0x000000, 1);を書いてもOKでした。
drawRectをほぼ同じ位置に描く
結果は予想できるけど一応?。testSprite_g.beginFill(0x000000, 1); testSprite_g.drawRect(50, 50, 30,30); testSprite_g.drawRect(60, 60, 30,30); testSprite_g.endFill();
同じですな(´-`)。解決策も一緒です。
drawCircleとdrawRectを同時に描く
これは気になった。testSprite_g.beginFill(0x000000, 1); testSprite_g.drawCircle(50, 50, 20); testSprite_g.drawRect(50, 50, 30,30); testSprite_g.endFill();
同じ現象ですな。意外な動きかと思いきやコレを利用すれば多少複雑な絵も描けそうな気がします。
描く事ないでしょうけど(´-`)
とまぁこんな感じです。
ちなみにlineToとmoveToとlineStyleにも書き順があるみたいですね。
この辺はググってくだされ。
2009/1/25 - 22:14 | Comments (0)
Category : FLASH AS3


コメントはまだありません。