2014-11-24 2 views
3

모든 마우스 이벤트를 캡처하고 FlexGlobals.topLevelApplication에 이벤트 리스너를 추가하려고했습니다. 그러나 클릭 수를 캡처하지 않은 경우 (Flex의 Menu 클래스와 같은 경우) - 이벤트 전파가 중지 된 곳이있을 수 있습니다. 내 청취자를 무시하는듯한 ...플렉스에서 모든 마우스 클릭 캡처

addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, true, 1000); 

: SystemManager.as 예를 들어 나는이 발견했다. 또한 Listener를 우선 순위 int.MAX_VALUE로 추가하려고했지만 성공하지 못했습니다.

제 질문은 - 어딘가에서 내 이벤트가 중단되는 것을 걱정하지 않고 모든 마우스 클릭을 캡처 할 수 있습니까? 어쩌면 자바 스크립트 해킹일까요? 또는 이벤트 리스너를 취소 할 기회가없는 어딘가에 추가 할 수 있습니까? 감사.

답변

1

당신은 캡처와 함께 무대에 이벤트 핸들러를 추가하는 시도 할 수 :

systemManager.stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, true, Integer.MAX_VALUE); 
+0

내가 이미 시도. 이벤트가 어딘가에 캡쳐 된 다음 다시 디스패치 된 것으로 보이고 이것이 작동하지 않는 이유입니다. systemManager.stage에 우선 순위 및 캡처없이 시스템 관리자에 핸들러를 연결하려고 시도했지만 아무 것도 그 트릭을 수행하지 않는 것 같습니다. –

+0

Displaylist에서 제거 된 요소에서 포커스를 놓는 것과 관련이있을 수 있습니다. 비슷한 기능을 설명하는 [link] (http://www.actionscript.org/resources/articles/900/1/Keyboard-events-on-stage-are-working-why/Page1.html)을 발견했습니다. 키보드 이벤트 처리 : – kjokinen

+0

아니, 도움이되지. 모든 이벤트를 캡처 할 수는 없습니다. 나는 좀 더 일반적인 해결책을 찾고 있는데, 모든 경우를 다룰 수는 없다. 예를 들어 Menu를 예로 들었다. –

관련 문제