« いろんな意味でしゃれにならないApollo | メイン | AS1MovieClipクラスを作ってみた »

drawする時はマスクにご用心

さっき悩まされた見つけたバグについて、情報共有のために紹介。
MovieClip.setMaskによってマスクされたシンボルをBitmapData.drawすると、マスクの位置がなぜかグローバル座標基準になった状態でマスクされたビットマップができあがり。

以下、図解(青:マスク、赤:シンボル、100x100のビットマップにシンボルをdraw)





左から順に、配置・理想・現実です。
シンボルは全て左上を原点合わせで、配置では円形マスクの相対座標を(0,0)、絶対座標を(20,20)としています。
理想ではくりぬかれた100x100のビットマップになるはずですが、実際には円形マスクが絶対座標にあるかのごとく振る舞います。

こんなの予想外。
最初as3のバグかと思っていたら、as1でもしっかり起こるし。
drawする場合はシンボル内部でマスクした方がよさそう。

トラックバック

このエントリーのトラックバックURL:
http://void.heteml.jp/mt/mt-tb.cgi/37

コメントを投稿

あわせて読みたい