Я бы сделал с
сигналами.
"Ребенок":

Код AS3:
package
{
import org.osflash.signals.Signal;
public class EventChild
{
public var myLittleSignal:Signal;
public function EventChild()
{
//Наш сигнал, который будет диспатчить сигнал с нужными данными
myLittleSignal = new Signal(EventChild);
}
private function dispatchSomeData(child:EventChild):void
{
//Диспетчиризуем сигнал со ссылкой на данный объект
myLittleSignal.dispatch(child);
}
//Вспомогательня функция
public function doSomething():void
{
dispatchSomeData(this);
}
}
}
"Класс родитель"

Код AS3:
package
{
public class EventParent
{
private var _child:EventChild;
public function EventParent()
{
_child = new EventChild();
//Добавляем слушатель на сигнал "дочернего" объекта
_child.myLittleSignal.add(childSignalListener);
_child.doSomething();
}
private function childSignalListener(child:EventChild):void
{
trace(child);
}
}
}
Для вложенных детей можно сделать переброс событий с ссылками на объекты дальше наверх)