[as3]TextFieldのサイズ変更ではまる。

TextFieldの文字サイズ変更ではまった。書き残しておく。

伝えたいことを一言でいうと、TextFieldの文字サイズを変更したい時、TextField.textに表示させたい文字列を入れる前に、TextField.defaultTextFormatにサイズ指定したTextFormatオブジェクトを渡しましょう。

actionscript3で文字を表示させる際、一般的にはTextFieldというクラスを利用する。TextFieldで表示させたい文字のサイズを変更するときには、TextFieldクラスのdefaultTextFormatフィールドに、変更したい文字サイズを持つTextFormatクラスのオブジェクトを渡すことで行える。

ただし、以下のようなコードでは、正しく文字サイズが変更されない。
[sourcecode language='js']
var tf:TextField = new TextField();
tf.text = “hoge”;

var fmt:TextFormat = new TextFormat();
fmt.size = 20;
tf.defaultTextFormat = fmt;
addChild(tf);
[/sourcecode]

解決策としては、TextFieldオブジェクトのtextフィールドへ、表示したい文字列を渡す前に、TextFieldオブジェクトのformatへ、文字サイズ指定したTextFormatオブジェクトを渡せばよい。すなわち、上のコードを以下のように書き換えればよい。

[sourcecode language='js']
var tf:TextField = new TextField();
var fmt:TextFormat = new TextFormat();
fmt.size = 20;
tf.defaultTextFormat = fmt;

tf.text = “hoge”;
addChild(tf);
[/sourcecode]

Tags: , , ,

Leave a Reply