ActionScript3.0にハマって早2ヶ月。ようやくその全貌が明らかになりつつある(自分的に)。
今回のお題は「お絵かきアプリ」。
線を描くところまでは簡単なんだ。web上にも様々なサンプルがある。
しかし、消しゴムを実装するのがこんなに難儀とは...
いえいえ、白い線の重ね書きならいいんです。
でも、そうすると透過pngで白い線が出力されちゃうでしょ?
と思ってBlendMode.LAYERとBlendMode.ERASEでやる方法を模索しておるんです。
どうやら、3つのSpriteを用意して、(例えばpaper,pen,eraser)
描くときには、
paper.addChild(pen);
として、
消しゴムのときは
paper.blendMode = BlendMode.LAYER;
eraser.blendMode = BlendMode.ERASER;
paper.addChild(eraser);
とすればそれっぽい表示になるのだけれど、
消したあとにまた描いて同じpaper.addChild(pen)を実行すると、
消す前の線が表示上復活してしまう。
どうやら別のpen2とかpenのArrayを作ってSpriteを重ね書きしなければならなそう。
MOUSE_UPした時点でビットマップ化したらできるかと思ったが、
消しとは言えないぐらいのゴミが残る。
「kakikeshi01.swf」をダウンロード
最近のコメント