0

Flash コンポーネント ComboBox に問題があります。ComboBoxに名前を保存したくないときは、常に最後の文字がありません!?

コードは次のとおりです。

    var input_name:String;
    text_field.addEventListener (TextEvent.TEXT_INPUT, text_input);
    button.addEventListener (MouseEvent.CLICK, save);
    function save (e:MouseEvent):void
    {
      text_field.visible = true;
      text_field.adddEventListener(KeyboardEvent.KEY_DOWN, save_text);
    }

    function text_input(e:TextEvent):void
      {
        input_name = text_field.text;
      }

    function save_text(e:KeyboardEvent):void
    {
       var keyPressed:String = e.keyCode.toString();
       if (keyPressed == "13")
        {
           combo.addItem({label:input_name, data:input_name});
        }
     }

テキストフィールドに「foo」と入力してENTERを押すと、コンボボックスに「fo」だけが保存されます...

答えのためのThx :)

4

1 に答える 1

0

TextEvent.TEXT_INPUT値が変更される前にディスパッチされます。

Event.CHANGE値が変更された後にディスパッチされます。

これは、enterキーの処理を含めて機能します。

import flash.events.MouseEvent;
import flash.events.Event;

var input_name:String;

text_field.addEventListener(Event.CHANGE, text_input);
text_field.addEventListener("enter", save);
button.addEventListener(MouseEvent.CLICK, save);

function text_input(e:Event):void
{
    input_name = text_field.text;
}

function save(e:*):void
{
    text_field.visible = true;
    combo.addItem({label:input_name, data:input_name});
}
于 2012-07-05T06:54:52.647 に答える