2008年12月10日星期三

getDefinitionByName 与自定义类

使用getDefinitionByName发现类是自定义的话出错,Google了一下,发现是这个原因:
因为缺乏运行时的动态源码编译。对于那些内建的类,比如:Sprite类来说无疑是有用的,但是对于自定义类来说,是不行的,因为没有编译进去
尽管我们使用了import语句,但是"getDefinitionByName()"还是会失败。原因上面已经说过了,在运行时编译源代码是不允许的。也许以后可以。在目前情况下,要实现上述功能,至少要在代码中初始化一个类的实例。也就是声明一个类的实例:
var customType : com.customtypes.string;

还发现另一个方法,不过这个方法经过俺的探索发现是不行的,
(转自http://sanbook.javaeye.com/blog/236564):
var typeName:String = classfullname ;
var packageName:String = typeName.split("::")[1];
var type:Class = Class(getDefinitionByName(typeName));
registerClassAlias(packageName, type);

没有评论: