Что-то вроде этого (событие генерируется в классе B и ловится в классе A):

Код AS3:
// главный класс Main
package {
import flash.display.Sprite;
public class Main extends Sprite {
private var instanceA:A;
private var instanceB:B;
public function Main() {
instanceA = new A();
instanceB = new B();
addChild(instanceA); // могут находится на любых уровнях
addChild(instanceB);
instanceA.linkToB = instanceB; // передаем ссылку на B
instanceA.addListener();
instanceB.dispatch();
}
}
}

Код AS3:
// класс A
package {
import flash.display.Sprite;
import flash.events.Event;
public class A extends Sprite {
private var instanceB:B;
public function A() {
trace("instanceA init.");
}
public function addListener():void {
instanceB.addEventListener("MyEvent",handler);
}
private function handler(e:Event):void {
trace(e);
}
public function set linkToB(link:B):void {
instanceB = link;
}
}
}

Код AS3:
// класс B
package {
import flash.display.Sprite;
import flash.events.Event;
public class B extends Sprite {
public function B() {
trace("instanceB init.");
}
public function dispatch():void {
dispatchEvent(new Event("MyEvent"));
}
}
}