StarlingのTextField[1]を使うとAS3と同様にしてテキストを表示できる。
(以下の内容はver1.xのみに対応しています。ver.2以降からTextField[1]は大幅に変更されました)
var tf:TextField = new TextField(200, 30, "test",FONT_NAME,26,0xff0000);
右寄せ、左寄せなどは、
tf.hAlign = HAlign.RIGHT; tf.vAlign = VAlign.BOTTOM;
とする。これは文字を寄せているだけなので、テキストフィールド全体の中心点についてはpivotXやpivotY、alignPivotなどを使う必要がある。
また、ビットマップフォントが登録されている場合は、そのままビットマップフォントの名前を指定するだけで、それが表示される。
注意事項として、
一つ目については、つねに大きめのサイズを指定することで回避できる。
二つ目は、パフォーマンスが必要とされるところではなるべくビットマップフォントを指定し、文字数が少ない場合はbatchableフラグをtrueにすると結構減る
tf.batchable = true;
3つめについては、たとえば複数行表示で行間を8にしたければ、TextField[1]を継承して、formatTextメソッドをオーバーライドする。
class MultiLineTextField extends TextField { public function MultiLineTextField (width:int, height:int, text:String, fontName:String = "Verdana", fontSize:Number = 12, color:uint = 0, bold:Boolean = false) { super(width, height, text, fontName, fontSize, color, bold); } override protected function formatText(textField:flash.text.TextField, textFormat:TextFormat):void { super.formatText(textField, textFormat); textField.multiline = true; textFormat.leading = 8; textField.setTextFormat(textFormat); } }
これ以外のAS3にある細かなテキストの設定もformatText関数で行える
(This host) = https://njf.jp