带有字符串的新构造函数

时间:2011-11-20 19:02:43

标签: actionscript-3

我想根据字符串值

调用构造函数,而不是很多if条件
var valueString:String = "myNewClassB";
var value:Class = valueString as Class; 

new value() // new value() == new myNewClassB() 

我知道它会失败,我需要帮助。感谢。

2 个答案:

答案 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" );