TextField の余白(1)
2009/04/05 19:44 - AS3.0
TextField には 2pixel 幅の縁取りが存在しますが、それ以外にも余白がありますよね。 今回の議題はその 2pixel の縁取り以上に発生する余白について。
下の図1を見てください。
外側の枠は TextField.border = true で描かれた枠、すなわち TextField.width × TextFiled.height の領域です。
内側の枠が 2pixel の縁取りを差し引いたサイズの枠で、これは TextField.textWidth × TextField.textHeight の領域になります。

見てのとおり、文字は TextField.textWidth × TextField.textHeight で描かれる矩形に内接するほど大きくは描かれません。
下の図2で赤く示したような余白部分がどうしても生じます。

先般、コンポジションの学習として BitmapData を 1pixel ずつ走査するクラスを組みましたが、そのとき、引数として与えた文字列を BitmapData 化してスキャンするというコードを書きました。
その詳細は頁末に列挙した参考エントリーを見ていただくとして、原理を簡単に述べると以下のような流れになっています。
- クラス内部で TextField を生成
- TextField.text に引数の文字列を代入
- その TextField を BitmapData に draw
- その BitmapData を getPixel32 でスキャン
「文字列をスキャン」という観点からすると、上の図2で赤く示した余白は邪魔なんですよねハッキリ言って。 できることならスキャンする領域は、下の図3で示した黒い枠内で済ませたいのですよ。

そのためには余白を断ち切りたいわけですが、それには一体どうしたらよろしかろうか、というのを今回考えてみたいと思います。
以下 次回。
参考エントリー