Я получил фабрику, где Action Script следует XML и строит из него иерархию DisplayObject.Это означает, что скрипт не знает заранее, с какими элементами он встретится в xml, и поэтому не знает, какие пользовательские фабричные классы ему понадобятся.
Я знаю, что возможно сделать что-то подобное:
var rect:*, className:String = "flash.geom.Rectangle";
if (ApplicationDomain.currentDomain.hasDefinition(className)) {
rect = new(getDefinitionByName(className));
}
И Прямоугольник экземпляр будет создан.Но как только я заменяю flash.geom.Rectangle на что-то определенное пользователем, например my.factory.Block , оно перестает работать, и если я закомментирую условное выражение, я получаю простое:* «Блок переменных не определен» ошибка.
Очевидным обходным решением будет создание экземпляра my.factory.Block (и всех других компонентов) перед активациейфабрика, но это как бы разрушает весь смысл фабрики динамических компонентов.
Конечно, у меня есть: import my.factory. *; инструкция в верхней части скрипта.
Есть ли более разумное решение для этого?