Здравствуйте, есть такой код в инициализации класса "героя":

Код AS3:
this.addEventListener(Event.ADDED_TO_STAGE, Added);
this.addEventListener(cEvents.INDEX_CHANGE, changed);
if (this.hasEventListener(cEvents.INDEX_CHANGE)) trace("have it");//проверка
//.....
private function changed(e:cEvents):void
{
this.StageIndex = stage.getChildIndex(this);
trace(this.StageIndex, "changed");//опять проверка (не работает. эта функция не вызывается)=(
}
В файле cEvents.as:

Код AS3:
package utils
{
import flash.events.EventDispatcher;
import flash.events.Event;
public class cEvents extends Event
{
public static var INDEX_CHANGE:String = "INDEX_CHANGE";
public function cEvents(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
trace(type);//проверка на досягаемость этого места
super(type, bubbles, cancelable) ;
}
}
}
В момент вызова:

Код AS3:
public function swap(e:MouseEvent):void
{
stage.swapChildrenAt(2, 3);//пока только два
dispatchEvent(new cEvents(cEvents.INDEX_CHANGE));
}
trace(type) из cEvents работает как надо при нажатии. Внутри же класса, который вызывает события, ничего не происходит. Может кто-то сталкивался?
Спасибо!