2009-09-04 6 views
1

저는 Flex에 처음 온 것입니다. 구성 요소간에 이벤트를 전달하는 방법은 궁금합니다. 알고있는 한, Flex는 이벤트를 자체 또는 부모에게 버블 링합니다.Flex의 구성 요소간에 이벤트를 전달하는 방법은 무엇입니까?

나는 그런 상황에있어 : ​​

나는에 따라, 두 개의 다른 구성 요소 A와 B

내가 COMP1 매개 변수와 이벤트를 파견 할 전화가 Component2.mxml 에서

<mx:Application> 
     <com:Component1 id="comp1" /> 
     <com:Component2 id="comp2" /> 
    </mx:Application> 

몇 가지 변경 사항이 comp2에서 A와 B로 변경 될 수 있습니다. 어떻게하면 comp2에서 이벤트를 가져올 수 있습니까? Cairngorm은 차이를 만들 수 있지만 지금은 사용하고 싶지 않습니다. 누구든지 저에게 손을 줄 수 있습니까? 감사!

최저

, 응용 프로그램이 전체 계층 구조, COMP1 및 COMP2뿐만 아니라 각각의 아이들을 통해 전달됩니다 버블 링 이벤트가 발생하면 슈오

답변

0
<mx:Application> 
     <com:Component1 id="comp1" click="comp2.handleComp1Click()"/> 
     <com:Component2 id="comp2" click="comp1.handleComp2Click()"/> 
    </mx:Application> 

등의 적절한 MVC 구조와이를 처리하는 것이 좋습니다 생각하지만, 그건 당신이 그것을 할 수있는 방법입니다. 더 복잡한 경우에는 응용 프로그램 수준에서 함수 (또는 함수)를 작성하고 해당 함수가 이벤트를 처리하도록 한 다음 필요한 것을 자식에게 전파하십시오. 귀하의 예에서는 응용 프로그램 수준에서 무언가를해야합니다.

예, 적절한 아키텍처가 더 좋습니다.

+0

감사합니다. Glenn.You 해결 방법은 실현 가능합니다 .Comp1은 이벤트를 전달하고 이벤트를 수신 한 Appllication 레벨까지 거품을 내고 처리기가 Comp2의 handleComp1Handler를 가리 키도록합니다. – Shuo

3

. COMP1에서 이벤트를 전달할 때

[Event(name="someEvent", type="flash.events.Event")] 

지금,이 같은 부모에서 처리됩니다 : 릴레이와 같은

<com:Component1 id="comp1" someEvent="this.dispatchEvent(event,true)"/> 

COMP1 메타 데이터를 전달한다.

가 나는 등 매우 원유의 등 Robotlegs, 친구, swiz, PureMVC,

+0

+1 for Swiz. :) –

+0

고마워, 조엘! 내게 좋은 힌트를 줬어. – Shuo

관련 문제