2011-02-15 3 views
0

편집 가능한 mx : Combobox입니다. 두 가지 이벤트를 잡으려고합니다.편집 가능한 콤보 상자에서 편집 및 선택 이벤트를 모두 잡는 방법은 무엇입니까?

  1. 사용자가 텍스트를 입력하거나 텍스트를 편집 할 때.

  2. 사용자가 선택을 변경하면 (콤보 상자에서 항목을 선택할 때).

가능합니까? 나는 change event을 사용하고 있었지만 두 경우 모두 해고되었으므로 구별 할 수 없습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?

+0

을 내가 both.Only 다른 이벤트가 변경 이벤트가되어 있다고 생각하지 않는다 해고. 당신이 할 수있는 일은 변경 이벤트가 해고되면, 이벤트에서 핸 들러는 값을 비교할 수 있고, 두 사건을 구별하는 논리를 쓸 수 있습니다. – Neeraj

답변

0

선택한 항목에 대해 변경 이벤트를 사용하고 텍스트 편집에 keyUp 이벤트를 사용합니다 (Shift + Key를 누르면 keyUp이 두 번 발생 함). 변경은 두 가지 모두에 대해 해고되지만 selectedItem이 null인지 확인하기 만하면됩니다. 이동 당신의 생각은 곧 4 플렉스 그래서 만약 또한, 편집 가능한 ComboBox 플렉스 4에서 사용할 수 없습니다,이 점을 명심 :

  private var ac:ArrayCollection; 

      private function onInit():void{ 

       ac = new ArrayCollection([{name:"john"}, 
        {name:"Stephen"}]); 
       myCombo.dataProvider = ac; 
       myCombo.labelField = "name"; 
      } 

      private function onComboChange(event:Event):void{ 
       if(event.target.selectedItem != null){ 
        trace("Item Selected: " + event.target.selectedLabel); 
       } 
      } 

      private function onKeyUp(event:Event):void{ 
       trace(event.target.text); 
      } 

    <mx:ComboBox id="myCombo" x="50" y="10" editable="true" change="onComboChange(event)" 
       keyUp="onKeyUp(event)"/> 
관련 문제