2011-02-09 4 views
0

내 질문은 클릭 : 절편 모든 버튼은

인가 거기에 내가 어떤 버튼을 클릭 할 때 소리를 추가 할 필요가 있기 때문에, 내 플렉스 (공기) 응용 프로그램의 모든 버튼 클릭 이벤트를 가로 챌 수있는 방법, 그리고 모든 화면을 살펴보고이 기능을 추가하지 말고 각 버튼의 각 클릭 이벤트를 변경하십시오.

내가 할 수있는 방법이 있습니까?

감사합니다.

답변

1

사이트 구성에 따라 달라질 수 있습니다. 버튼마다 고유 한 클래스가 있거나 그렇지 않으면 일부 고유 한 기능 (인스턴스 이름에 공통된 헝가리 스타일 _btn 표시)을 공유합니까? 그렇다면, 당신은 이런 식으로 뭔가를 시도 할 수 :

root.addEventListener(MouseEvent.CLICK, onButtonClickPlaySound); 
private function onButtonClickPlaySound(e:MouseEvent):void{ 
    if(e.target is ExtendedButton){ 
     // play sound here... 
    } 

    // or.... 

    if(e.target.name.indexOf("hungariannotation") >= 0){ 
     // play sound here... 
    } 
} 

이 작동하지 않습니다 경우 표시 목록 정지 이벤트 전파 아래로 핸들러. 마우스 클릭은 루트까지 끝까지 버블 링되어야합니다.

+1

버튼으로 공유되는 'stage' 또는 다른 공통 부모를 타겟팅하고 수신기의'useCapture' 매개 변수를'true'로 설정하여'CLICK'을 가로 챌 수 있다고 말하면서 추가 할 것입니다. 이벤트가 버튼을 받기 전에 그런 다음 위에서 보았 듯이'event.target' 속성을 필터링 할 수 있습니다. –

관련 문제