2012-07-05 2 views
0

플래시 구성 요소 ComboBox에 문제가 있습니다. ComboBox에 이름을 저장하지 않을 때는 언제나 마지막 문자가 없습니다!? 여기 AS3의 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}); 
     } 
    } 

내가 텍스트 필드와 언론에 '갑'를 입력 ENTER는 답변을 그냥 ... 'FO'콤보 상자에

들으을 절약 할 수 :)

답변

0

TextEvent.TEXT_INPUT은 값이 변경되기 전에 전달됩니다.

Event.CHANGE은 값이 변경된 후에 전달됩니다.

키를 입력하는 것을 포함하여 작동합니다.

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}); 
} 
+0

아니요, 여전히 동일합니다 ... –

+0

죄송합니다, 당신이 찾고있는 'Event.CHANGE'입니다. –

+0

예, 작동합니다! 고마워요! –

관련 문제