Это дамп порядка событий из простого флэш-файла, который записывает свои события на консоль 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.