Ad

StarlingのTextFieldEditを使うとAS3と同様にしてテキストを表示できる。

(以下の内容はver1.xのみに対応しています。ver.2以降からTextFieldEditは大幅に変更されました)

var tf:TextField = new TextField(200, 30, "test",FONT_NAME,26,0xff0000);

右寄せ、左寄せなどは、

tf.hAlign = HAlign.RIGHT;
tf.vAlign = VAlign.BOTTOM;

とする。これは文字を寄せているだけなので、テキストフィールド全体の中心点についてはpivotXやpivotY、alignPivotなどを使う必要がある。

また、ビットマップフォントが登録されている場合は、そのままビットマップフォントの名前を指定するだけで、それが表示される。

注意事項として、

  • サイズが小さくて文字がはみ出る場合は全く何も表示されないことがある。
  • ビットマップフォント以外ではドローコールが結構増える
  • より細かな設定はTextFieldEditを継承した自分のクラスを使って行う。

一つ目については、つねに大きめのサイズを指定することで回避できる。

二つ目は、パフォーマンスが必要とされるところではなるべくビットマップフォントを指定し、文字数が少ない場合はbatchableフラグをtrueにすると結構減る

tf.batchable = true;

3つめについては、たとえば複数行表示で行間を8にしたければ、TextFieldEditを継承して、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関数で行える


Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 1842, today: 1, yesterday: 0
Princeps date: 2015-06-03 (Wed) 07:29:22
Last-modified: 2018-04-14 (Sat) 01:59:27 (JST) (552d) by njf
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF