TextField の余白(4)円満解決編
2009/04/09 21:31 - AS3.0
TextField を BitmapData に draw するときに余白を断ち切りたい話が急転直下の大団円を迎えました!
前回は BitmapData の4辺を getPixel32 でスキャンなどという頭悪いにもほどがあるコードをお示ししたわけですが、それに対してコメントで primevision さんから、ある解法のご提示をいただきました。
その方法を使ったら驚くほど簡単にできましたですよ! primevision さん、ありがとうございました!
以下、あっけないくらい簡単なコード。
たったこんだけ! 二重ループを4回もやってたなんてバカみたいですよね。
まず最初に例のごとく、2pixel の縁取りを取り除いた状態で、TextField を BitmapData に draw します。
次に今回のポイントである、BitmapData の getColorBoundsRect というメソッドを使います。
getColorBoundsRect とはどのような機能のメソッドかということはライブヘルプの当該部分をご覧いただくとして、第1引数に 0xff000000、第2引数に 0x00000000、第3引数に false を指定すると、文字である領域のみが Rectangle として返ってきます。
その Rectangle 領域のみを2番目の BitmapData に draw すると、TextField から余白が取り除かれた状態の BitmapData が取得できます。
クラスリファレンスはちゃんと読まなアカンね。 まだまだ学習が足りませんよ。
間もなく(Amazonの表示では 4/29、出版元の表示では 5/18、どっちだ?)「Foundation Actionscript 3.0 Image Effects」なる書籍が出るようなので、予約しとこうかしら。
前回掲示したソースファイル群のうち、PixelizerTextField.as だけを以下のものと差し替えていただくと、getColorBoundsRect 使用版がお試しいただけます。
primevision さん、ご教示ありがとうございました!