Видимо плохо читал, всё должно работать. Выложи полный код.
Добавлено через 5 минут
В качестве теста можешь написать в классе героя

Код AS3:
public function swap(e:MouseEvent):void
{
stage.swapChildrenAt(2, 3);//пока только два
dispatchEvent(new Event("Test_01"));
}
и подписаться на него,

Код AS3:
this.addEventListener("Test_01", changed);

Код AS3:
private function changed(e:Event):void
{
trace("WORK!!!");
}
Это 100% рабочий вариант, если не работает, то ты делаешь что-то не так или неправильно объясняешься.