• 限制文本框字符数


    创建角色要求字符数不能超过6个,我之前的做法是

    label.maxChars = 6;
    

    这样设置,不管是中文还是英文,都只能输入6个字符。如果是中文6个字符,肯定是足够了,但是英文,比如我自己的名字LouisSong,就有点不够了。

    测试之后发现用以下代码可以解决:

    label.addEventListener(Event.CHANGE,onChange);
    label.addEventListener(TextEvent.TEXT_INPUT,onInput);
    
    private var tempStr:String = '';
    private var bytes:ByteArray = new ByteArray();
    private function onInput(event:TextEvent):void
    {
         tempStr = label.text;
    }
            
    private function onChange(event:Event):void
    {
        bytes.length = 0;
        bytes.writeMultiByte(label.text,'gbk');
        if(bytes.length > 12)
        {
            label.text = tempStr;
        }
    }

    其中TextInput事件会在按下键盘,label里面的文字改变的时候触发,此时oninput函数运行的时候,label的文字还没改变。
    change事件会在label的文字改变后触发。

    这里说一下几种编码格式的区别:

    utf-8使用中文就会占用3个字节,英文的话只有一个字节
    unicode中英文都是2个字节
    gbk中文2个字节,英文1个字节

     所以,我在这里选择了gbk格式

  • 相关阅读:
    Project Euler 389 Platonic Dice (概率)
    单纯形(相关题目)
    关于C++中的内存泄露
    莫比乌斯反演与积性函数求和筛法中的一些细节
    清华集训2015-Day 2
    bzoj3456-城市规划
    多项式运算的一些技术
    bzoj2302-Problem c
    bzoj4300-绝世好题
    bzoj4726-Sabota?
  • 原文地址:https://www.cnblogs.com/louissong/p/3305287.html
Copyright © 2020-2023  润新知