[AS3] htmlTextで表示した文字列が改行した時の文字幅が大きくなってしまった時の対処法
今回仕事でやったときにちょっとつまずいたのでメモ。
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

