2009-11-30 4 views
0

Flex 4에서 버블 링 맞춤 이벤트를 만드는 방법은 무엇입니까? 만들고 MXML에서 사용자 지정 이벤트를 노출Flex 4 버블 링하는 맞춤 이벤트

, 당신은이 라인으로 이벤트를 전달합니다 구성 요소에 선언해야 할 것은 :

<fx:Metadata> 
     [Event(name="select", type="my.engine.events.SelectionEvent")] 
</fx:Metadata> 

이는 다음과 같은 기능을 제공합니다

<my:CustomComponent select="doSomething()"/> 

그러나 어떻게이 거품을 위쪽으로 만들 수 있습니까? 이 작업을 수행하고 싶습니다.

<s:DataGroup select="doSomethingForAll();"> 
    <s:itemRenderer> 
     <fx:Component> 
     <my:CustomComponent/> 
     </fx:Component> 
    </s:itemRenderer> 
</s:DataGroup/> 

고마워요!

답변

0

하나의 가능한 해결책은 아니지만 정확히 내가 찾고있는 것이이 코드 줄을 데이터 그룹 수준에 추가하는 것입니다.

this.addEventListener(SelectionEvent.SELECTED, onSelect); 

이렇게하면 CustomComponent에 의해 시작된 모든 이벤트를 확인할 수 있습니다. 내장 된 확장 된 클래스로 지정된 사용자 정의 메타 태그 데이터 정보로 DATAGROUP 컨테이너 또는 아래 코드의 itemRenderer의 "선택"이벤트 핸들러의 방법 "() doSomethingForAll '이라고 볼 수 있습니다 :

0

당신은의를 확장 할 수 있습니다

다음
<s:DataGroup   
    dataProvider="{instructions}"   
    width="100%">   
    <s:itemRenderer> 
     <fx:Component> 
      <my:CustomComponent      
       select="rendererSelect()"> 
       <fx:Script> 
        <![CDATA[ 

         protected function rendererSelect():void 
         { 
          outerDocument.doSomethingForAll(); 
         } 

        ]]> 
       </fx:Script> 
      </my:CustomComponent> 
     </fx:Component> 
    </s:itemRenderer>     
</s:DataGroup> 
0

잡아라 dataGroups 선택 이벤트와는 doSomethingForAll()

가 doSomethingForAll 이벤트가 true로 설정 속성을 버블 링있어이 있는지 확인을 전달합니다.

그러면 표시 목록에서 위의 doSomethingForAll을 수신하는 이벤트 리스너가 호출됩니다.

1

맞춤 이벤트는 이벤트를 연장해야합니다. 생성자에서는 name:string, bubbling:booleancacellable:boolean을 인수로 사용합니다.

거품 매개 변수를 true로 설정하십시오. 예제에서 메타 데이터 태그는 DataGroup 태그에 있어야합니다.