Руководство по actionscript. часть 4, стр. 018
При выполнении приемника clickListener ( ) на консоль выводится текущая фаза. Обратите внимание, что она определяется путем сравнения значения переменной eventPhase с тремя константами класса EventPhase.
var t:TextField = new TextField( ); t. text = «click here»;
t. autoSize = TextFieldAutoSize. LEFT; stage. addChild(t):
// Регистрируем приемник для фазы захвата
stage. addEventListener(MouseEvent. CLICK, clickListener, true);
// Регистрируем приемник для фазы получения или всплытия stage. addEventListener(MouseEvent. CLICK, clickListener, false);
// …где-то в классе
private function clickListener (e;MouseEvent);void { var phase:String; switch (e. eventPhase) {
case EventPhase. CAPTURING_PHASE:
phase = «Capture»;
break;
case EventPhase. AT_TARGET; phase = «Target»; break;
case EventPhase. BUBBLING_PHASE;
phase = «Bubbling»;
break;
}
trace(«Current event phase; » + phase);
}
Если при выполнении предыдущего кода пользователь щелкнет кнопкой мыши на объекте TextField, то среда Flash осуществит диспетчеризацию события MouseEvent. CLICK, получателем которого является объект TextField, и в результате будет выведена следующая информация:
Current event phase: Capture Current event phase: Bubbling
He забывайте, что приемник clickListener( ) был зарегистрирован в экземпляре класса Stage и для фазы захвата, и для фазы всплытия, поэтому в процессе диспетчеризации событий, получателями которых являются потомки экземпляра класса Stage, он вызывается дважды.