Вы можете решить свою проблему, используя как минимум две стратегии:
1) Повторная отправка событий.Скажем, C
отправляет какое-то событие.В B
мы подписываемся на это событие и повторно отправляем его:
var c:C = new C();
c.addEventListener("myEvent", myEventHandler);
private function myEventHandler (event:Event):void
{
dispatchEvent(event);
}
Помните, что вы должны реализовать clone()
правильно для своего пользовательского класса событий в этом случае.Вы также можете перевести событие из C
в другое событие в B
и отправить его.
2) Передать C
в A
.Вы можете сделать это, используя интерфейс flash.events.IEventDispatcher
.
Что-то вроде следующего:
В B
:
private var _c:IEventDispatcher;
public function get innerInstance():IEventDispatcher
{
return _c;
}
public function B()
{
_c = new C();
}
В A
:
var b:B = new B();
b.innerInstance.addEventListener("myEvent", myEventHandler);