1

ユーザーが入力できる残りの文字数を計算する関数がありますが、なぜ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;

        }

w入力関数:

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

4 に答える 4

0

私はランダムなグーグル検索からこれに出くわしました、そして私はイベントが発火したときにテキストフィールドがまだその中に文字を持っていなかった方法についてのdebuのコメントからそれを理解しました。電球!その後、非常に明白に見えたので、KeyboardEvent.KEY_DOWNをKeyboardEvent.KEY_UPに変更しました。今の私が望むように機能しているようです。これがほぼ2年後に役立つことを願っています!

于 2012-01-13T23:18:37.997 に答える
0

これを試してみてください..

wInput.addEventListener(KeyboardEvent.KEY_UP, calculate);
private function calculate(event:Event=null):void 
{
remainingA.text=String(wInput.text.length);
}
于 2013-09-10T09:12:07.637 に答える
0

nameRC が何かよくわかりません。wInput が TextField の場合、その .text プロパティをどこに設定しますか? とにかく、次の .text プロパティを設定する唯一の場所に進みます。

remainingA.text=NameRC;

TextField に何かを追加する前に最大長の計算を行うため、常に 1 桁遅れている可能性があると思います。たとえば、最初にその計算を行うとき、Keyboard イベントをキャッチしただけなのに、TextField には何もありません。したがって、0 が返されます。その後、フィールドに何かを追加します。そのため、次にその Keyboard イベントが発生するときは、1 つ遅れます。私の唯一の推測は、これらの行を交換するだけでよいということです。

でも、私はかなり離れているかもしれません;)

于 2010-03-19T04:23:52.713 に答える
-1

コードで、からに変更しKeyboardEvent.KEY_DOWN, calculateますKeyboardEvent.KEY_UP, calculate

于 2013-03-19T09:19:17.140 に答える