中英文混排,遇到中英文交界处自动换行。

/**
 * 设置多行文本的时候,有时文本不贴边显示,不会铺满文本框。怀疑是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;
		}
	}
}

tf=new TextField();
tf.defaultTextFormat=format;
tf.autoSize=TextFieldAutoSize.LEFT;
tf.width=200;
tf.wordWrap=true;
tf.text=content;
addChild(tf);
TextFieldUtil.adjustWordWrap(tf);


 
  
 
  
 
 

你可能感兴趣的:(AS,3.0知识温习)