[AS3] htmlTextで表示した文字列が改行した時の文字幅が大きくなってしまった時の対処法

| | トラックバック(0)

今回仕事でやったときにちょっとつまずいたのでメモ。

XMLを読み込み、文字列をhtmlTextにて表示した際に、XML内に改行(\n,\r)があると思いのほか
改行の幅が大きく見た目がちょっとおかしい状況がありました。
で、下記のように修正したらいけました。

str = str.replace( /\n/g, "</p>" );
str = str.replace( /\r/g, "<p>" );
str = str.replace(/<br \/>/g, "");
tf.htmlText = "<p>" + str + "</p>";

replace()で改行があった場合に<p>タグと取り替えて、<br />とかなにか他に余計なものがある場合は取り除く。
こうすればstyleSheetとかで文字幅も設定できる。
本当はもっと良いやり方があるのかと思いますが、とりあえずこれでいけた。

ただ、後で下記のようにして検証してみたら改行の幅は特に問題なかったです。

var str = "<p>あいうえお<br />かきくけこ<br />さしすせそ<br />たちつてと<br />なにぬねの</p>"
var tf:TextField = new TextField();
tf.multiline = true;
tf.width = 200;
tf.htmlText = str;
tf.x = 10;
tf.y = 10;
addChild(tf);

トラックバック(0)

このブログ記事を参照しているブログ一覧: [AS3] htmlTextで表示した文字列が改行した時の文字幅が大きくなってしまった時の対処法

このブログ記事に対するトラックバックURL: http://alwaysfinetuning.com/mt/mt-tb.cgi/127

このブログ記事について

このページは、が2010年3月 4日 16:40に書いたブログ記事です。

ひとつ前のブログ記事は「[iPhone]ロリポのメール設定」です。

次のブログ記事は「[Music] Ugly Duckling - A Little Samba」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。