setPixel32とgetPixel32

ActionScriptでBitmapDataの操作を最近書いてます。

BitmapDataの中の色をsetPixel32とgetPixel32を使って操作しているのですが,setPixel32であるピクセルのα値を0にして,次にそのピクセルの値をgetPixel32で取るとどういうわけか全部 00000000(黒色のα値が0) になってしまう。これは該当ピクセルの色情報そのものがα値を0にしたことでなくなってしまったのだと仮定して,とりあえず良しとしよう。

でもこれだと,α値を0にしたあとで元(α値100)に戻したいときに,元に戻せないので困る。そこで,α値を0にしてしまわず1にしておいて色情報が消えてしまうのを防ごうと考えた。α値が1程度なら人間の目には見えないし,色情報も保持したままいけるんじゃないかという思惑だ。

ところがどっこい,setPixel32でα値を1にしたピクセルをgetPixel32すると,元の色情報とは違う色が返ってくるではないか。うーん,これはFlashのバグなんだろうか。それとも仕様?α値を20にしておくと,元の色情報を保持したままα値を下げられることが分かった。でも,α値20だと良く見ると薄ーく消した色が見えちゃうんだよなー。

ヘルプを適当にさらっと読んで実装したもんだから,setPixel32とgetPixel32のそもそもの使い方ミスしているのかも。バグと決め付けてしまう前に,とりあえずヘルプに良く目を通しておこう。

後日,きっとこの経過について書くことになるはず・・。