이 클래스는 인수로 지정한 TextField의 width길이보다 text 내용이 길어질 경우에 뒤에 임의로 "..."을 append 하는 클래스다. static 메소드 형태로 만들려다가 동적으로 TextField의 width 값을 변경할 경우에도 편하게 사용할 수 있도록 만들었다. 실제적으로 동적으로 사이즈를 변경해야 하는 경우가 많지는 않겠지만 브라우저의 사이즈에 따라 유동적으로 TextField의 길이를 변경해야 할 경우에는 유용하게 사용할 수 있을 듯싶다.
아래는 위 클래스를 이용하여 동적으로 TextField의 사이즈를 변경하는 예이다.
아래는 클래스 소스 원본
package jasu.display{
import flash.text.TextField;
public class CutTextField {
private var _tf:TextField;
private var _t:String;
public function CutTextField(tf:TextField):void {
_tf = tf;
_t = tf.text;
cutText();
}
public function cutText():void {
if (_tf.maxScrollH > 0) {
_tf.appendText("...");
while (_tf.maxScrollH > 0) {
var str:Array=_tf.text.split("");
var len:int = str.length;
str.splice(len - 4,1);
_tf.text=str.join("");
}
}
}
public function setTextField(tf:TextField):void {
_tf = tf;
_t = tf.text;
}
public function getTextField():TextField {
return _tf;
}
public function set width(w:int):void {
_tf.width = w;
_tf.text = _t;
}
public function get width():int {
return _tf.width;
}
public function set text(t:String):void {
_tf.text = _t = t;
}
public function get text():String {
return _t;
}
}
}