2011-08-02 2 views

답변

1

이 작업을 수행하는 것은 전적으로 법적으로 허용됩니다.

마우스 이벤트의 작동 방식을 기억해야합니다. 이벤트 전달 시스템은 마우스 이벤트를 트리거하는 객체의 표시 계층 구조를 검사합니다. 그런 다음 루트 요소 (보통 스테이지)와 맨 아래 요소 인 이벤트 대상이 있습니다.

플래시는 이제이 이벤트에 대해 전체 계층에게 알립니다. 이 계층 구조의 요소 중 하나에 마우스 다운 이벤트로 설정된 수신기가 있으면 알림을받습니다.

알림은 루트 요소가 대상 요소로 내려 가서 (2) 해당 요소 (2)에 알리고 다시 루트 요소 (3)로 버블 링하는 3 단계 절차입니다.

하향식 알림 흐름을 캡처 단계라고합니다. 여기서 통지를 받으려면 useCapture 플래그를 true로 설정해야합니다. 상향식 통지 흐름을 bubblin 단계라고합니다. useCapture를 true로 설정하지 않으면 부모가 기본적으로 등록한 것입니다.

이벤트의 대상 단계는 병상 단계를 따릅니다. 여기서 이벤트를 트리거 한 실제 이벤트 대상이 통지됩니다.

요약 : 이벤트는 3 단계 프로 시저로 전달됩니다. 디스플레이 계층 구조의 요소는 해당 이벤트를 수신 할 수도 있고 수신하지 않을 수도 있습니다. http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html

enter image description here

2

괜찮습니다. 원하는만큼 이벤트 리스너를 추가 할 수 있으며, 모두 동일한 이벤트를 수신하고 서로 간섭하지 않습니다.

+0

간단하고 명확 :

여기에 웹 링크를 발견했다. 고맙습니다. 그건 그렇고, 어떻게 리스너라고 불리는 객체의 인스턴스를 찾을 수 있습니까? 내 말은, 리스너가있는 클래스의 인스턴스가 50 개있는 경우 객체가 호출을 발생시킨 함수 내부를 어떻게 알 수 있습니까? – nicks

+2

이벤트 객체에는 호출을 유발 한 객체를 저장하는 'target'속성이 있습니다. – Bartek

+1

50 개 인스턴스의 목록/배열이있는 경우 루프를 반복하고 각 이벤트를 MouseEvent의 'event.target' 속성과 비교할 수 있습니다 청취자 기능으로 전송됩니다. – Bakapii