setNewTextFormat()後のスクリプトからの文字の追記





this is flash contents.

またText周りに関するメモ.
というかもっといい方法がある気がするけどうまくいかなス...

右のカラー選択でsetTextFormat()されて,したボタン群で,各々の方法で文字を追加.

1つ目のボタンは文字列連結にて文字を追記.

test_txt.text += chara;
test_txt.text = test_txt.text + chara;

と同等なので,追記ではなく新しいフォーマットのテキストにすべて置き換わってしまう.

2つ目はreplaceText()にて追記.

test_txt.replaceText(est_txt.text.length, test_txt.text.length, chara);

こんな感じ.
1文字はうまくいくけど2文字目はダメ... なんで??

3つ目は2つ目にさらに設定しておいたTextFormatsetNewTextFormat()にて毎回設定.

4つ目はカーソルのある選択場所が影響してるのかと思ってreplaceText() + Selection.setFocus()にて選択範囲のカーソルを一番後ろへ.

Selection.setFocus(test_txt);
Selection.setSelection(Selection.getEndIndex(), Selection.getEndIndex());

なぜか今度はTextFormat()の設定が効かなくなる...
なんだ??

ダウンロード


contributor nao : 2006年12月09日 13:08

comment

通常のTextFieldは、内部に複数の色指定を格納できるようになっていない為、後から適用したTextFormatの指定は、HTMLタグとして格納されています。
その為、textに対して+=するとTextFormat情報を含まないストリングに追加する形となるので、色情報が消し飛びます。
この場合には、htmlTextに対して+=するといけると思いますよ。

contributor nium : 2006年12月10日 03:34


> nium さん

情報ありがとうございます!
htmlText周りで不思議な挙動があったんですが,そういうことなんですね.
なるほどー.

contributor nao : 2006年12月10日 04:12