Вы можете прослушивать объект (EventDispatcher) напрямую, добавив к нему прослушиватель событий или, если объект диспетчера находится в списке отображения, например Sprite, вы можете прослушивать на уровне сцены с параметром захвата, установленным в true.
Но главное предостережение в том, что диспетчер должен находиться на сцене, чтобы вы могли поймать это событие.
Ваше главное окно слушает сцену (с capture = true):
stage.addEventListener("MY_CUSTOM_EVENT", handle_custom_event, true);
private function handle_custom_event(e:Event):void
{
var sub_window:Object = e.target;
// do something to your sub_window
}
Ваше подокно может отправлять события следующим образом:
dispatchEvent(new Event("MY_CUSTOM_EVENT"));
Но (ab) использование стадии в качестве инфраструктуры передачи сообщений для пользовательских событий таким образом немного запутанно.Вы могли бы рассмотреть более формальную архитектуру передачи сообщений, если вы действительно хотите такого рода коммуникации.Даже статический класс MessageBus, по крайней мере, быстро поможет вам определить, где вы используете это в своей кодовой базе.В любом случае, вы должны быть осторожны с ссылками и утечками памяти.