2

Flex의 기본 응용 프로그램에 메뉴 모음과 사용자 지정 구성 요소가 있습니다. 메뉴 모음의 메뉴 항목을 클릭 할 때 사용자 지정 구성 요소에서도들을 수있는 사용자 지정 이벤트가 필요합니다. 또는 메뉴 항목 중 하나를 선택할 때 발생하는 메뉴 이벤트 일 수도 있습니다. 내가 어떻게이 일을 할 수 있니?형제 간의 이벤트 흐름

내가 잘못하지 않으면 메뉴 항목 클릭 이벤트가 메뉴 바에서 응용 프로그램으로 (버블 링 단계에서) 전파되고 형제 인 사용자 정의 구성 요소는 전달되지 않습니다.

예제 코드 : 같은 파슬리, swiz, 로봇 다리로

<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" 
         xmlns:code="http://code.google.com/p/flexlib/" > 

<fx:Script> 
    <![CDATA[ 


        protected function menuBar_itemClickHandler(event:MenuEvent):void 
        { 
          if([email protected]=='New File'){ 
           //I dont want to write code like 
           // mainTab.someProperty= someproperty 
           //Instead if this event or other custom event 
           //be raised which could be listened by the custom 
           //component and the listener could be written in the 
           //component itself 
          } 
        } 

      ]]> 
</fx:Script> 

<mx:MenuBar id="menuBar" 
      labelField="@label" 
      showRoot="false" 
      width="100%" height="4%" 
      horizontalCenter="0" verticalCenter="0" 
      itemClick="menuBar_itemClickHandler(event)"> 

    <mx:dataProvider> 
     <fx:XML> 
      <root> 
       <parent label="File"> 
              <node label="New File" /> 
        <node label="Load" /> 
        <node label="Save" /> 
        <node label="Exit" /> 

       </parent> 
          </root> 
        </fx:XML> 
    </mx:dataProvider> 
</mx:MenuBar> 
    <code:MDICanvas width="100%" height="95%"> 

     <!-- MY CUSTOM COMPONENT --> 

    <local:MainTab id="mainTab" width="100%" height="100%" /> 

    </code:MDICanvas> 
</s:Application> 
+0

나는 이것이 이것을 달성하는 올바른 방법이라고 생각한다. –

+0

형제이며 동일한 범위 내에있는 경우 MenuBar 및 addEventListener()에 대한 참조를 가져올 수 있습니까? –

+0

이벤트는 상위 - 하위 계층 구조의 위/아래에서만 이동할 수 있습니다. 그것은 형제 자매에게 갈 수 없다. 두 가지 해결 방법이 있습니다. 1) 해당 구성 요소에서 other 및 addEventListener 중 하나의 구성 요소에 대한 참조를 보유합니다. 2) 모두의 부모 구성 요소에 addEventListener (여기서는 Application 임). – Asad

답변

0

를 사용하여 응용 프로그램 프레임 워크는 ... 쉽게이 작업을 수행합니다. 모든 범위에서 이벤트를 수신하고 전파 할 수 있습니다.

+0

답이 없습니다 ;-) – kleopatra

+0

@kleopatra 이벤트 전파는 flex 응용 프로그램에서 모듈 및 주요 응용 범위를 지정하여 얻을 수 있습니다 ... – santosh1220