
Код AS3:
package {
import flash.display.MovieClip;
import flash.utils.setInterval;
public class Main extends MovieClip {
public function Main() {
setInterval(sortShapes, 100);
}
public function sortShapes():void{
var shapeData : ShapeData = getRandomShapeData();
switch(shapeData.getClass()){
case ShapeData:
trace("this is ShapeData!");
break;
case ShapeData2:
trace("this is ShapeData2!");
break;
case ShapeData3:
trace("this is ShapeData3!");
break;
}
}
public function getRandomShapeData():ShapeData{
var classes : Array = [ShapeData, ShapeData2, ShapeData3];
var classIdx : int = Math.random()*classes.length;
return new classes[classIdx];
}
}
}

Код AS3:
package {
import flash.utils.getQualifiedClassName;
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
public class ShapeData extends Sprite {
public function ShapeData() {
}
public function getClass():Class {
return getDefinitionByName(getQualifiedClassName(this)) as Class;
}
}
}

Код AS3:
package {
public class ShapeData2 extends ShapeData {
public function ShapeData2() {
// constructor code
}
}
}

Код AS3:
package {
public class ShapeData3 extends ShapeData{
public function ShapeData3() {
// constructor code
}
}
}