/**
* 设置多行文本的时候,有时文本不贴边显示,不会铺满文本框。怀疑是wordWrap属性的问题。
* 使用另一种方式解决。
* 调用该方法前,需要设置好文本框字体,宽度,文本内容
* @param tf
* @param content
* @param tw
*/
public static function adjustWordWrap(tf:TextField):void
{
var tw:Number=tf.textWidth;
var str:String=tf.text;
var addLen:int=0;
for (var i:int=0; i < str.length; i++)
{
var char:String=str.charAt(i);
if (char == "\r" || char == "\n")
{
addLen=0;
continue;
}
var rect:Rectangle=tf.getCharBoundaries(i);
//遇到换行符等特殊字符(不显示字符),rect=null.
if (rect == null)
{
continue;
}
addLen+=rect.width;
if (addLen > tf.width - 4)
{
var ss:String=str.charAt(i - 1) + "\n";
//在指定位置插入换行
tf.replaceText(i - 1, i, ss);
addLen=0;
}
}
}
<pre name="code" class="javascript">tf=new TextField();
tf.defaultTextFormat=format;
tf.autoSize=TextFieldAutoSize.LEFT;
tf.width=200;
tf.wordWrap=true;
tf.text=content;
addChild(tf);
TextFieldUtil.adjustWordWrap(tf);
</pre><pre name="code" class="html">
</pre><pre name="code" class="html">