2011-03-20 5 views
0

저는 스파크 콤보 박스를 사용하고 있습니다. 내가 뭘하고 싶은 사용자가 목록에서 요소를 삭제할 수 있도록하는 것입니다. 이렇게하려면 custom (매우 단순한) itemRenderer를 사용하여 각 cb 요소 옆에 삭제 단추를 추가한다고 생각했습니다.대화 형으로 콤보 상자에서 요소를 제거하십시오.

모두 괜찮아 보입니다 - 버튼이 표시 될 수 있고 버튼이 대화 형으로 표시됩니다 (예 : 마우스를 올려 놓으면 색상이 확실히 바뀝니다). 그러나 버튼을 클릭 할 때 어떤 이벤트도 발생하지 않습니다. 구성 요소의 코드를 살펴 보았지만 어떤 천재적인 생각으로 밝혀지지 않았습니다. 누군가가 버튼을 쏘는 방법을 알고 있는지 궁금합니다. (거기에서 가져갈 수 있습니다 ...). 여기에 무슨 일이 일어나고 있는지 설명하기위한 몇 가지 샘플 코드가 있습니다.

감사합니다!


<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> 

    <fx:Declarations> 
     <s:ArrayList id="dp"> 
      <fx:Object description="aaaa" /> 
      <fx:Object description="bbbb" /> 
      <fx:Object description="cccc" /> 
      <fx:Object description="dddd" /> 
     </s:ArrayList> 
    </fx:Declarations> 

    <s:ComboBox id="cb" width="200" x="20" y="20" 
       dataProvider="{dp}" labelField="description" 
       itemRenderer="ComboBoxItemRenderer.symbolComboBoxRenderer"/> 

</s:Application> 

및 아이템 렌더러 (참고 : 내가 오프 모두 캡처 단계를 시도했지만 운이 또한 내가 더 높은 우선 순위를 시도,하지만 거기에 행운 중 하나.).

<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" 
       creationComplete="itemrenderer1_creationCompleteHandler(event)"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 
      import mx.utils.StringUtil; 

      import spark.components.ComboBox; 

      override public function set data(value:Object):void 
      { 
       super.data = value; 
      } 

      protected function button1_clickHandler(event:MouseEvent):void 
      { 
       trace("pressed button"); 
      } 

      protected function itemrenderer1_creationCompleteHandler(event:FlexEvent):void 
      { 
       bt.addEventListener(MouseEvent.CLICK, button1_clickHandler, true, 50); 
      } 

     ]]> 
    </fx:Script> 

    <s:HGroup width="100%"> 
     <s:Label id="labelDisplay" left="1" top="5" bottom="5" width="100%"/> 
     <s:Button id="bt" width="7" height="7"/> 
    </s:HGroup> 
</s:ItemRenderer> 

답변

1

좋습니다. 알아 낸 내용은 item_mouseDownHandler를 재정의하고 대상 유형을 확인하는 것이 트릭을 수행하는 것으로 보입니다.

관련 문제