<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 38, comments - 2, trackbacks - 0, articles - 0
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    Code
     
    01.//Copyright © 2009. Http://L4cd.Net All Rights Reserved.
    02.package net.L4cd.display
    03.{
    04.    import flash.events.Event;
    05.    import flash.events.TextEvent;
    06.    import flash.text.TextField;
    07.    import flash.utils.ByteArray;
    08.  
    09.    /**
    10.     * 擴(kuò)展TextField類,中文以2字符長(zhǎng)度計(jì)算
    11.     *
    12.     * @author L4cd.Net
    13.     * @playerversion Flash player 9
    14.     * @langversion 3.0
    15.     * @version 2009-06-16
    16.     */
    17.    public class TextFieldExt extends TextField
    18.    {
    19.        private var _maxChars:int = -1;
    20.        public function TextFieldExt()
    21.        {
    22.            super();
    23.              
    24.        }
    25.        override public function get maxChars():int
    26.        {
    27.            return _maxChars;
    28.        }
    29.        override public function set maxChars(value:int):void
    30.        {
    31.            _maxChars = value;
    32.            if(maxChars<0)
    33.            {
    34.                removeEventListener(TextEvent.TEXT_INPUT,input);      
    35.            }else
    36.            {
    37.                addEventListener(TextEvent.TEXT_INPUT,input);
    38.                text = getTextByCharLength(text,maxChars);
    39.            }
    40.        }
    41.        override public function get length():int
    42.        {
    43.            return getCharLength(text);
    44.        }
    45.        private function input(e:TextEvent):void
    46.        {
    47.            //攔截并阻止textinput事件,手動(dòng)處理內(nèi)容輸入
    48.            var textField:TextField = e.currentTarget as TextField;
    49.            var temp:String = getTextByCharLength(e.text,maxChars - getCharLength(text) + getCharLength(selectedText));
    50.            var index:int = selectionBeginIndex;
    51.            replaceText(selectionBeginIndex,selectionEndIndex,temp);
    52.            setSelection(index+temp.length,index+temp.length);
    53.            dispatchEvent(new Event(Event.CHANGE,true));
    54.            e.preventDefault();
    55.        }
    56.        /**
    57.         * 獲取字符長(zhǎng)度,一個(gè)中文算2長(zhǎng)度
    58.         * @param txt
    59.         * @return 返回長(zhǎng)度值
    60.         */    
    61.        private function getCharLength(txt:String):int
    62.        {
    63.            var byte:ByteArray = new ByteArray();
    64.            byte.writeMultiByte(txt,"gb2312");
    65.            byte.position = 0;
    66.            return byte.bytesAvailable;
    67.        }
    68.        /**
    69.         * 截取指定長(zhǎng)度的文本內(nèi)容,一個(gè)中文算2長(zhǎng)度
    70.         * @param txt 需要截取的文本
    71.         * @param length 需要截取的長(zhǎng)度
    72.         * @return 截取后的內(nèi)容
    73.         */    
    74.        private function getTextByCharLength(txt:String,length:int):String
    75.        {
    76.            if(length<1)return "";
    77.            var byte:ByteArray = new ByteArray();
    78.            byte.writeMultiByte(txt,"gb2312");
    79.            byte.position = 0;
    80.            return byte.readMultiByte(Math.min(length,byte.bytesAvailable),"gb2312");
    81.        }
    82.    }
    83.}




    調(diào)用方法和普通TextField無(wú)異
    1.import net.L4cd.display.TextFieldExt
    2.var ext:TextFieldExt = new TextFieldExt();
    3.ext.maxChars = 15;
    4.addChild(ext);





    一般的輸入,粘貼等操作均沒(méi)問(wèn)題..
    直接對(duì)text進(jìn)行賦值沒(méi)有進(jìn)行限制 (原來(lái)的TextField也沒(méi)限制)..
    如需限制~可以調(diào)用一次maxChars = maxChars即可..

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲av无码av在线播放| 免费人成在线观看视频播放| 九九热久久免费视频| 日韩成人在线免费视频| 一区二区三区在线免费看| 猫咪免费人成网站在线观看入口 | 亚洲av无码乱码国产精品fc2| 免费观看四虎精品国产永久| 亚洲人成网站免费播放| 在线精品自拍亚洲第一区| 亚洲av无码久久忘忧草| 亚洲AV福利天堂一区二区三| 91视频国产免费| 亚洲无砖砖区免费| 久久免费观看国产精品| 免费无码作爱视频| 亚洲成a人无码亚洲成av无码| 亚洲人成伊人成综合网久久久| 国产一区二区三区无码免费| 午夜色a大片在线观看免费| 97在线观免费视频观看| 国产1000部成人免费视频| 九九九国产精品成人免费视频| 亚洲AV无码国产剧情| 亚洲AV成人无码网天堂| 亚洲av乱码一区二区三区按摩| 亚洲欧美中文日韩视频| 啦啦啦在线免费视频| 免费无码肉片在线观看| 美女被免费喷白浆视频| 久草视频免费在线观看| xxxx日本免费| 国产精品一区二区三区免费| 美女扒开尿口给男人爽免费视频| 亚洲a∨无码精品色午夜| 亚洲精品久久无码av片俺去也| 亚洲日韩AV无码一区二区三区人| 男人天堂2018亚洲男人天堂| 亚洲七久久之综合七久久| 亚洲国产欧美一区二区三区| 欧美亚洲精品一区二区|