У меня ужасная проблема. У меня есть две строковые переменные (className и staticMethod) хранят имя класса, и это статический метод, который я должен вызвать:
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.
Как я мог сделать это без этого экземпляра? Если это невозможно, есть ли способ создать экземпляр класса из строковой переменной? Или, если это все еще плохая практика, как бы вы это сделали? (Я должен работать с этими двумя неизвестными строковыми переменными.)
Заранее спасибо.