我想根据字符串值
调用构造函数,而不是很多if条件var valueString:String = "myNewClassB";
var value:Class = valueString as Class;
new value() // new value() == new myNewClassB()
我知道它会失败,我需要帮助。感谢。
答案 0 :(得分:6)
var ClassReference:Class = getDefinitionByName("myNewClassB");
var instance = new ClassReference();
这是基础,萌芽。
答案 1 :(得分:5)
如果你想这样做,有两种方法,或者将类分配给在对象中为一个例子制作的类列表:
var list:Object = {
classA: FirstClass,
classB: SecondClass,
classC: ThirdClass
}
然后用字符串调用它们:
var desiredObject:* = new (list["classA"] as Class)();
或者您也可以使用getDefinitionBtName,但是如果您想获得一个类,则需要提供一个全名(包含)
var desiredClass = getDefinitionByName( "com.somedomain.SomeClass" );
如果您正在使用SWF内容并希望从中获取课程,则应使用该加载器loaderInfo.applicationDomain.getDefinition( "....class" );
您还可以通过以下方式检查类是否定义:
loaderInfo.applicationDomain.hasDefinition( "....class" );