在Java中可以通过反射机制动态创建类,在Flex中同样可以根据类名动态的创建类
可创建一个工具类:ClassUtil.as
package com.njit
{
import flash.utils.getDefinitionByName;
public class ClassUtil{
public function ClassUtil(){
}
//根据类名创建类
private function createClass(cname:String):Class{
return getDefinitionByName(cname) as Class;
}
//实例化类
public static function getInstance(cname:String):*{
var instance:Class=this.createClass(cname);
return instance;
}
}
}
注意:在调用上述方法创建类时,需要在开头先声明一下该类的一个变量(虽然这个变量没有用到)
//必须在此先声明一下改类的一个引用,否则会报错
private var _leftComp:LeftComp;
private function init():void{
var c:Class=ClassUtil.getInstance("com.njit.view.LeftComp");
this.addChild(c);
}