ActionScript 3 AS3 - 修剪特定宽度和高度的文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActionScript 3 AS3 - 修剪特定宽度和高度的文本相关的知识,希望对你有一定的参考价值。

package com.streameye.utils {
	
	import flash.text.TextField;

	public class TrimTextUtil {
		
		public function TrimTextUtil() {
			
		}
		
		public static function trimTfForHeight(_tf:TextField, _height:Number = 0 ):void{
			
			_tf.multiline = true;
			_tf.wordWrap = true;
			_tf.condenseWhite = true;
			
			var heightNeeded:Number = _height != 0 ? _height : _tf.height;
			
			if(_tf.textHeight > heightNeeded){			
				
				var safeLinesNum:int = 0;
				var preciseFixer:int = 0;
				var safeTrim:Number = 0;
								
				for(var i:Number = 0; i< _tf.numLines-1; i++){
					if(_tf.getLineMetrics(i).height*i + _tf.getLineMetrics(i).ascent < heightNeeded - preciseFixer){
						safeTrim += _tf.getLineLength(i);
						safeLinesNum++;
					}
				}
				
				var suffix:String = " ...";
				_tf.text = truncate(_tf.text, safeTrim, suffix);
			}
			
		}
		
		public static function truncate(p_string:String, p_len:uint, p_suffix:String = "..."):String {
			if (p_string == null) {
				return '';
			}
			p_len -=  p_suffix.length;
			var trunc:String = p_string;
			if (trunc.length > p_len) {
				trunc = trunc.substr(0,p_len);
				if (/[^\s]/.test(p_string.charAt(p_len))) {
					trunc = (trunc.replace(/\w+$|\s+$/,'')).replace(/\s+$/, '');
				}
				trunc +=  p_suffix;
			}
			return trunc;			
		}
		
		public static function stripTags(s_text:String):String{
			return s_text.replace(/<.*?>/g, "")
		}
		
		////  ARRAYS
		
		public static function chunks(array:Array, chunk_size:uint):Array {
			var chunks:Array = new Array();
			for (var i:int = 0; i < (array.length / chunk_size); i++) {
				chunks.push(array.slice(i * chunk_size, (i + 1) * chunk_size));
			}
			return chunks;
		}
		
	}//end
}

以上是关于ActionScript 3 AS3 - 修剪特定宽度和高度的文本的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 AS3修剪逗号分隔字符串(例如,用户输入的逗号分隔关键字列表)

使用 actionscript 3 修剪字符串

ActionScript 3 AS3 SWFtrospection(as3swf)

ActionScript 3 AS3 TextField和StyleSheet示例(在ActionScript中创建)

[ActionScript 3.0] AS3.0 水面波纹效果

ActionScript 3 AS3:使用SWFObject2和AS3传递变量