Поскольку любое событие, которое использует либо фазу захвата, либо пузырьковую фазу, у которой нет прерывания распространения, проходит через стадию, вы можете просто добавить прослушиватель для стадии внутри указанного класса.
Пример кода:
public function Receiver()
{
addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true);
}
private function added(evt:Event):void
{
stage.addEventListener(Event.shipWasHit, shipHit, false, 0, true);
}
private function shipHit(evt:Event):void
{
//code
evt.stopPropagation();
}
Теперь здесь есть несколько предостережений. Прежде всего, этот класс должен быть создан и добавлен на сцену для ссылки на сцену. В противном случае вам нужно будет передать этап как параметр, и в случаях он может возвращать ноль. Наконец, вам нужно создать экземпляр этого экземпляра перед отправкой события, хотя, похоже, это не является проблемой с кодом, который я сейчас вижу.