我有个难看的问题。我有两个字符串变量(class name和static method)存储类的名称,这是我必须调用的静态方法:
package {
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;
public class ClassPlay extends Sprite {
public function ClassPlay() {
new Foo();
var className:String = 'Foo';
var staticMethod:String = 'bar';
var classClass:Class = getDefinitionByName(className) as Class;
try {
classClass[staticMethod]();
} catch (e:Error) {}
}
}
}
这是主题类:
package {
public class Foo {
public static function bar():void {trace('Foo.bar() was called.');}
}
}
它工作得很好。当你评论这(第9)行时的问题是:
// new Foo();
如果没有此行,则退出,但出现异常:
ReferenceError: Error #1065: Variable Foo is not defined.
如果没有这个实例,我怎么能做到这一点?如果这是不可能的,有没有办法从字符串变量实例化类?或者如果这仍然是一个糟糕的做法,你会怎么做?(我必须处理这两个未知的字符串变量。)
事先谢谢。