2

전달에 EnterFrame 이벤트가 걸리는 경로를 이해하는 데 어려움이 있습니다. 이벤트에 캡처, AtTarget 및 Bubbling의 3 단계가 있다는 것을 알고 있습니다.AS3EnterFrame 이벤트 전파 이해 문제

flash.events.Event 클래스를 보면 Event가 Bubble이 아닙니다.

DisplayObject에 EventListener를 추가하면 Enter Frame 이벤트가 수신됩니다. useCapture = true와 동일한 작업을 수행하면 이벤트가 수신되지 않습니다.

그러나 모든 이벤트가 캡처 단계를 통과하지 않아도 되나요? Event 대상을 선택하면 수신 DisplayObject가 대상으로 반환됩니다.

전달하는 동안 EnterFrame 이벤트의 대상이 변경되거나 모든 DisplayObject에 생성되고 전달 된 새 이벤트입니까?

플래시는 모든 DisplayObject와 구분 된 목록을 유지합니까? DisplayObject가 표시 트리에 추가되지 않은 경우 EnterFrame 이벤트가 수신되기 때문에?

+2

에 대답한다. ENTER_FRAME 이벤트는 다른 이벤트와 다르게 동작하는 것 같습니다. 1) 캡처 단계를 거치지 않는다고 언급했듯이, 2) 입력 프레임 리스너를 여러 객체에 추가하면 각 객체가 자체 프레임 입력 이벤트를 수신하는 것처럼 보입니다 (디버거에서 각 이벤트마다 다른 메모리 주소, 3) 또한 enter frame 이벤트가 다시 사용 된 것 같습니다 (동일한 메모리 주소가 디버거에서 계속 표시됨). 이 이벤트가 너무 자주 발생한다고 생각 하듯이 우리가 보는 행동은 Flash Player에 의한 최적화 일 수 있습니다. –

+2

이 페이지 하단의 [senocular.com 페이지] (http://www.senocular.com/flash/tutorials/orderoperoperations/)에서는 "브로드 캐스트 이벤트"(두 개 이상의 객체로 이동하는 이벤트)에 대해 설명합니다. Flash에서의 이벤트와 관련하여이 용어를 처음 들어 본 적이 없습니다. 브로드 캐스트 이벤트는 우리가 익숙한 일반적인 캡처 -> 목표 -> 버블 패러다임보다 다르게 행동합니다 (당신의 질문/내 의견에 언급 된 바와 같음). 나는 아직도 내 [Collin Moock] (http://shop.oreilly.com/product/9781565928527.do) 책을 가지고 있기를 소원합니다 ... –

+0

@Sunil D. 귀하의 링크에 정말 멋진 정보가 있습니다. –

답변

2

ENTER_FRAME (from AS3 Reference)

이 이벤트 대상 여부, "캡처 단계"또는 이벤트 리스너 잠재적 타겟 직접 첨가되어야한다는 수단 "버블 링 단계",도없는 디스플레이 목록에 있는지 여부. 그래서 다시 질문 (들)

:

나는 그것을받는 모든 DisplayObject에 EventListener를 추가하는 경우는 프레임 이벤트를 입력합니다. useCapture = true와 동일한 작업을 수행하면 이벤트가 수신되지 않습니다.

useCapture를 = TRUE //이 아무것도하지 않습니다, ENTER_FRAME 더 "캡처 단계"가 없으므로

그러나 모든 이벤트는 캡처 단계를 통과하지 않겠습니까? 내가 이벤트를 선택하면 "캡처 단계"

이벤트 만 그것의 대상으로 수신 DisplayObject를 반환 대상.

전파 또는 모든으로 DisplayObject로 만들어지고 전달되는 새로운 이벤트 동안이

가 enterFrame 이벤트의 대상이 바뀌지 않는이 정확한지?

각 대상에 개별적으로 전송됩니다.

플래시는 모든 DisplayObject와 구분 된 목록을 유지합니까?DisplayObject가 표시 트리에 추가되지 않으면 EnterFrame 이벤트가 수신되기 때문에 디스플레이 트리에 ?

이이 흥미 롭다 선일 D 주석

+0

저는이 세월이 지난 후에 문서에서 캡처 또는 버블 페이즈가없는 이벤트에 대한 메모를 어떻게 잃었는지 잘 모릅니다. –

+0

와우, 제공된 링크가 정말 유용합니다. 약간의 이벤트가 다르게 행동한다는 점에 흥미 롭습니다. – user1090755