[AS3] TextFieldのTextFormatを部分的に変えたい
- カテゴリ
- AS3
- タグ
- TextField , TextFormat
- 2009.11.16
テキストフィールドのフォーマットを部分的に変更したいんです。
一部だけ強調して下線をつけたり、太字にしたりとか。
そんなときはいつも使ってるsetTextFormatを使えば大丈夫です![icon:mezamashi[1]](http://cocoasaurus.com/mt/mt-static/plugins/emoddy/images/mezamashi%5B1%5D.gif)
setTextFormatって実はどこからどこまでって指定できるんですね。知らなかった
public function setTextFormat(format:TextFormat, beginIndex:int = -1, endIndex:int = -1):void
format:TextFormat -- 文字と段落のフォーマット情報を含む TextFormat オブジェクトです。
beginIndex:int (default = -1) -- オプション : 該当するテキスト範囲の直後の文字を指定して、ゼロから始まるインデックス位置を指定する整数。
endIndex:int (default = -1) -- オプション : 該当するテキスト範囲の直後の文字を指定する整数。意図したとおり、beginIndex と endIndex の値を指定すると、beginIndex から endIndex-1 までのテキストが更新されます。
なので、たとえばこんな感じで使うと
var tf:TextField = new TextField();
tf.text = "this is it! phooooow!"
tf.autoSize = TextFieldAutoSize.LEFT;
addChild( tf );
// 部分的に太字にしたい
var fmt:TextFormat = new TextFormat();
fmt.bold = true;
fmt.underline = true;
tf.setTextFormat( fmt, 12, 21 );
tf.text = "this is it! phooooow!"
tf.autoSize = TextFieldAutoSize.LEFT;
addChild( tf );
// 部分的に太字にしたい
var fmt:TextFormat = new TextFormat();
fmt.bold = true;
fmt.underline = true;
tf.setTextFormat( fmt, 12, 21 );
こんな感じになります
this is it! phooooow!
第2引数と第3引数を動的に変えれば、任意の範囲のフォーマットを変えることができちゃいます![icon:car02[1]](http://cocoasaurus.com/mt/mt-static/plugins/emoddy/images/car02%5B1%5D.gif)
