2010-05-24 2 views
1

친애하는 Richard Szalay 님,
나는 버블 링에 관한 귀하의 답변을 통해, 나는 더 버블 링을 탐험하고 싶습니다. 내가 = 버블 링 세트 내 사용자 지정 이벤트 클래스에서flex 맞춤 이벤트 버블 링

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:view="com.view.*" > 
<mx:Script> 
    <![CDATA[ 
    import com.events.ImgLoaded; 
    private function loadedd(evt:ImgLoaded):void{ 
    trace("test") 
    evt.stopImmediatePropagation(); 
    } 
    private function panelClickHandler(evt:Event):void{ 
    trace("panel"); 
    } 
    ]]> 
</mx:Script> 
<mx:VBox> 
    <mx:Panel click="panelClickHandler(event)"> 
    <view:Load imgLoad="loadedd(event)"/> 
    </mx:Panel> 
</mx:VBox> 
</mx:Application> 

아래에있는 내 샘플을 참조하십시오 사실, 취소 할 수 = 사실

내가 버블 링에만 UI 구성 요소에 영향을 미치는 이전의 대답에서 이해할 수있다; bubbles 인수가 true로 설정된 경우에도 사용자 정의 클래스에서 시작된 이벤트는 거품을 생성하지 않습니다.

제 질문은 어떻게 panelClickHandler 함수가 "로드"(사용자 정의 구성 요소) 버튼을 클릭하면 발생하는 것을 방지 할 수 있습니까 ??

좋은 예를 들어 버블 링을 설명하십시오 (맞춤 이벤트 클래스와 같음)?

+0

이 다음과 같은 대답을 참조 나타납니다 http://stackoverflow.com/questions/2040610/bubbling-events-within-custom-components-in-flex/2040770#2040770 –

답변

0

당신의 모국어가 영어가 아니며 어떤 언어로도 나는 당신을 완전히 이해하고 있는지 확신 할 수 없다고 생각합니다. 그러나 당신이 요구하는 것은 클릭에서보기를 허용하는 방법입니다 : 클릭 발사에서로드 핸들러.

필요한 것은 뷰의 클릭에 대한 이벤트 리스너를 설정하는 것입니다 (로드 구성 요소 및 stopPropagation). 이렇게하면 패널의 클릭 핸들러가 실행되지 않습니다. 예 :

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:view="com.view.*" > 
    <mx:Script> 
     <![CDATA[ 
     import com.events.ImgLoaded; 
     private function loadedd(evt:ImgLoaded):void{ 
     trace("test") 
     evt.stopImmediatePropagation(); 
     } 
     private function panelClickHandler(evt:Event):void{ 
     trace("panel"); 
     } 
private function load_clickHandler (e:MouseEvent) : void 
{ 
e.stopPropagation; 
} 
     ]]> 
    </mx:Script> 
    <mx:VBox> 
     <mx:Panel click="panelClickHandler(event)"> 
     <view:Load imgLoad="loadedd(event)" click="load_clickHandler(event)"/> 
     </mx:Panel> 
    </mx:VBox> 
    </mx:Application>