Близко, но вам нужно немного подправить, например:
var str:String = "MyObject";
var Shell:Class = getDefinitionByName(str) as Class;
var myobj:DisplayObject = new Shell();
addChild(myobj);
На что обратить внимание, эта строка:
var myobj:DisplayObject = new Shell();
Вы должны заменить DisplayObject
на самый примитивный тип, который вы можете (я обычно использую свой собственный базовый класс).
Другие примечания:
Вам понадобится полный путь к пакету при использовании getDefinitionByName
. например:
getDefinitionByName("flash.display.MovieClip");
Если вы столкнетесь с такими ошибками:
ReferenceError: Error #1065: Variable MyObject is not defined.
Возможно, вам понадобится сделать ссылку на классы, которые могут быть созданы следующим образом:
var ref1:Disk;
var ref2:Other;
var ref3:MyObject;