не понимаю почему не удаётся привести тип объекта к нужному. Код ниже, MainClass - основной.

Код AS3:
package {
import flash.display.*;
public class MainClass extends Sprite {
private var zzz:Sprite;
public function MainClass() {
zzz = new TestClass();
TestClass(zzz);
zzz.myMethod();
addChild(zzz);
}
}
}

Код AS3:
package {
import flash.display.*;
public class TestClass extends Sprite {
private var whiteBack:Shape;
public function TestClass() {
whiteBack = new Shape();
whiteBack.graphics.beginFill(0x999999, 1);
whiteBack.graphics.drawRect(0, 0, 150, 100);
addChild(whiteBack);
}
public function myMethod() {
whiteBack.x+=10;
}
}
}
выходит ошибка: "Call to a possibly undefined method myMethod through a reference with static type flash.display:Sprite."
в моём понимании zzz сначала Sprite, потом TestClass(zzz) - приводит zzz к типу TestClass и нам становятся доступны все методы этого класса. Но методы не доступны, почему?
И почему пишут, что zzz ещё Sprite, разве он уже не TestClass?
если мы заменим строку zzz.myMethod(); на if (zzz is TestClass){zzz.myMethod();}
выходит та же ошибка, получается zzz имеет уже тип TestClass, но методы этого класса вызвать не может. Как же так?