UPD
Вы получили:
private function iconClickHandler(event:MouseEvent):void
{
trace("listener2");
var customEvent:CustomEvent= new CustomEvent(CustomEvent.CUSTOM_EVENT, true, true);
dispatchEvent(customEvent);
trace("listener3");
}
private function customEventHandler(event:CustomEvent):void
{
trace("listener1");
}
Когда отправляется MouseEvent.MOUSE_CLICK
, запускается первый счастливый слушатель - это функция вашего компонента iconClickHandler
.Здесь мы отслеживаем «listener2» и отправляем пользовательское событие.
Из-за синхронного характера событий CUSTOM_EVENT
слушатели запускаются сразу , что означает, что отправка события аналогичнавызов функций слушателя .События нигде не хранятся, они не задерживаются: слушатели событий запускаются немедленно, в том же потоке управления, в том же потоке.
CUSTOM_EVENT
было отправлено, его слушатели были запущены - мы получиливызовите customEventHandler
и «listener1» в консоли.
Когда все слушатели были запущены, управление возвращается к iconClickHandler
и «listener3» отслеживается до консоли.
Вот почему мымы получили вывод:
listener2
listener1
listener3