Actionscript и JS - DOM события - PullRequest
       1

Actionscript и JS - DOM события

0 голосов
/ 04 апреля 2011

Я задавался вопросом, может ли кто-нибудь предоставить какую-либо информацию о том, как события flash связаны с моделью событий DOM.

Моя проблема заключается в следующем:

body> div> object

У div есть событие mousedown, которое вызывает 'protectDefault' для объекта события.

Это не должно иметь никакого отношения к событию click внутри объектов swf, однако в IE9 оно предотвращает запуск события mfsedown swfs ...

Я изо всех сил пытаюсь понять, как события SWF вписываются в DOM (предположительно, они продолжают пузыриться от элемента объекта?) И почему событие click на элементе div повлияет на щелчок swf потомков.

Может кто-нибудь помочь объяснить?

Рич

1 Ответ

1 голос
/ 04 апреля 2011

Это дамп порядка событий из простого флэш-файла, который записывает свои события на консоль DOM через ExternalInterface, дополнительно я связал события клика с элементами body, div и object через jQuery. (похоже, что элемент object не запускает события мыши в DOM).

mouseDown [object MovieClip] [object Stage] c
mouseDown [object MovieClip] [object DocumentClass] c
mouseDown [object MovieClip] [object MovieClip] c
mouseDown [object MovieClip] [object MovieClip]
mouseDown [object MovieClip] [object DocumentClass]
mouseDown [object MovieClip] [object Stage]
mousedown [object HTMLObjectElement] [object HTMLDivElement]
mousedown [object HTMLObjectElement] [object HTMLBodyElement]
mouseUp [object MovieClip] [object Stage] c
mouseUp [object MovieClip] [object DocumentClass] c
mouseUp [object MovieClip] [object MovieClip] c
mouseUp [object MovieClip] [object MovieClip]
mouseUp [object MovieClip] [object DocumentClass]
mouseUp [object MovieClip] [object Stage]
click [object MovieClip] [object Stage] c
click [object MovieClip] [object DocumentClass] c
click [object MovieClip] [object MovieClip] c
click [object MovieClip] [object MovieClip]
click [object MovieClip] [object DocumentClass]
click [object MovieClip] [object Stage]
mouseup [object HTMLObjectElement] [object HTMLDivElement]
mouseup [object HTMLObjectElement] [object HTMLBodyElement]
click [object HTMLObjectElement] [object HTMLDivElement]
click [object HTMLObjectElement] [object HTMLBodyElement]

Вы заметите, что я также добавил слушателей для фазы захвата в ActionScript. Я не беспокоился о JS, поскольку jQuery, похоже, не имеет упрощенного способа обработки событий фазы.

Этот конкретный дамп был выполнен в Firefox 4, поэтому во всех браузерах могут быть несоответствия тому, запускаются ли события DOM перед событиями ActionScript.

Учитывая модель пузырящихся событий, это конкретное поведение имеет смысл, хотя важно отметить, что события ActionScript MOUSE_UP и CLICK срабатывают до событий mouseup и click DOM.

Я собираюсь рискнуть предположением, что IE9 разрешает выполнение фаз фазирования / захвата перед вызовом любых событий ActionScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...