字符计数只开始指望第二个字符?

时间:2010-03-19 02:43:38

标签: actionscript-3 keyboard-events

我有一个函数可以计算用户可以输入的剩余字符数,但我不知道为什么它只从第2个字符开始计算。最后的手段我可以从我设定的最大数量中输入一个额外的字符。

wInput.maxChars=30

wInput.addEventListener(KeyboardEvent.KEY_DOWN, calculate);
private function calculate(event:Event=null):void {
                NameRC=wInput.maxChars-wInput.length;
                remainingA.text=NameRC;

        }

wInput功能:

private function input():void {
            //name input
            wInputF.font=arial.fontName;
            wInputF.color=0x818181;
            wInputF.size=15;
            wInputF.align=TextFormatAlign.JUSTIFY;
            wInputF.leftMargin=5;
            wInputF.rightMargin=10;


            wInput.defaultTextFormat=wInputF;
            wInput.border=true;
            wInput.borderColor=0xE6E6E6;
            wInput.selectable=true;
            wInput.type=TextFieldType.INPUT;
            wInput.maxChars=30;
            wInput.width=wBox.width-wType.textWidth-70;
            wInput.height=wInput.textHeight+5;
            wInput.x=wBox.x+wType.width+10;
            wInput.y=wType.y-5;
            wBox.addChild(wInput);

            //calculate remaining characters
            remaining();
            remainingC.x=wInput.x+wInput.width+20;
            remainingC.y=wInput.y+12;
            wInput.addEventListener(KeyboardEvent.KEY_DOWN, calculate);
        }

4 个答案:

答案 0 :(得分:0)

我不太确定nameRC是什么,如果wInput是TextField,你在哪里设置它的.text属性?无论如何,去你设置.text属性的唯一地方,即:

remainingA.text=NameRC;

我猜它可能总是落后1位数,因为你在向TextField添加任何内容之前进行了最大长度计算。所以,当你第一次进行计算时,TextField中没有任何东西,即使你只是抓住了一个键盘事件。所以它会返回0;然后你就可以在这个领域添加一些东西。因此,下次触发Keyboard事件时,它就落后了。我唯一的猜测是你只需要换掉这些线。

我可以方式关闭,但是;)

答案 1 :(得分:0)

我从一个随机的谷歌搜索中偶然发现了这一点,我从debu的评论中找出了关于文本字段在事件发生时如何没有字符的评论。灯泡!之后看起来如此明显,我将KeyboardEvent.KEY_DOWN更改为KeyboardEvent.KEY_UP。似乎工作我现在想要它。希望这有助于将近2年之后!

答案 2 :(得分:0)

试试这个..

wInput.addEventListener(KeyboardEvent.KEY_UP, calculate);
private function calculate(event:Event=null):void 
{
remainingA.text=String(wInput.text.length);
}

答案 3 :(得分:-1)

在您的代码中,从KeyboardEvent.KEY_DOWN, calculate更改为KeyboardEvent.KEY_UP, calculate