Что происходит с потоком кода при вызове слушателя AS3?
Чтобы быть более конкретным, я хочу знать, что происходит со следующим кодом, когда вызывается слушатель для обработки этого события в AS3. Фактически, прерывается ли поток, пока функция handleAnyEvent()
запущен или если поток продолжается, вызывая другие функции, пока handleAnyEvent()
работает в другом потоке. Кто-нибудь может объяснить точный поток этого кода?
anything.addEventListener(Event.ANY_EVENT, handleAnyEvent);
function handleAnyEvent(e:Event):void{
//Do something here
}
anything.dispatchEvent(new Event(Event.ANY_EVENT));
somefunction();
otherfunction();
examplefunction();
2 ответа
Решение
Да, dispatchEvent
блоки. Однако предполагается, что обработчикам событий потребуется тривиальное количество времени, поскольку ActionScript имеет несколько способов выполнения нетривиальных операций блокировки, таких как ввод / вывод.
Flash работает в одном потоке. (да, есть рабочие, но это не то, что система событий использует по умолчанию)