Можно ловить событие, когда оно в фазе захвата.
Третий параметр в addEventListener().

Код AS3:
sprite1.addEventListener('someEvent', sprite1_someevent, true);

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main()
{
var sprite1:Sprite = new Sprite();
var sprite2:Sprite = new Sprite();
var sprite3:Sprite = new Sprite();
var sprite4:Sprite = new Sprite();
addChild(sprite1);
sprite1.addChild(sprite2);
sprite2.addChild(sprite3);
sprite3.addChild(sprite4);
sprite1.addEventListener('someEvent', sprite1_someevent, true);
sprite4.dispatchEvent( new Event('someEvent') );
}
private function sprite1_someevent(e:Event):void
{
trace("function sprite1_someevent()");
}
}
}