вообщем есть первый класс

Код AS3:
public class SpriteExt extends Sprite
{
public function SpriteExt(myAttr:Object = null)
{
if (this.stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
protected function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
trace('deleted');
}
}
и второй, его сын

Код AS3:
public class MainMenu extends SpriteExt {
public function MainMenu(myAttr:Object = null) {
super(myAttr);
}
override private function init()
{
trace('inited');
super();
}
}
хочу чтобы при добавлении на сцену любого из детей SpriteExt вызывалась функция init() того класса, который сообственно создался, а не init() самого родителя SpriteExt.
Тоесть output в данном случае выглядит так:
deleted
А хотелось бы
inited
deleted