[AS3] TextField 길이를 벗어나는 글자는 ...으로

Programming/ActionScript 3.0 2007. 8. 16. 03:13
이 클래스는 인수로 지정한 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;
                }
        }
}
    

설정

트랙백

댓글