Я проголосовал за ваш ответ Кадьяку, потому что он помог мне решить мою проблему после нескольких часов поиска правильного способа сделать именно это.Спасибо вам большое!Тем не менее, при использовании вашего кода я столкнулся с несколькими ошибками (по крайней мере, Flash CS5 не понравилась пара вещей, которые вы сделали).Так что, если кто-то еще сталкивался с этим, вот что я должен был сделать, чтобы заставить это работать во Flash.
removeChild(getChildByName("level" + i.toString()));
var levelClassName:String = "level_" + (i+1).toString();
var levelClass:Class = getDefinitionByName(levelClassName) as Class;
var level:DisplayObject = new levelClass;
level.name = "level" + (i+1).toString();
addChild(level);
Разница на самом деле только в некотором синтаксисе, но она вызвала ошибки.В частности, getDefinitionByName не нужно было перепечатывать как строку (и не может быть так, как кажется через ': String' может быть 'как строка' или что-то может быть лучше, если это даже нужно ??).Также это дало ошибку несоответствия между объектом и классом, поэтому мне пришлось добавить «как класс» в строку.Другое место, которое отбросило некоторые ошибки, было просто 'levelClass: Class'.Я обнаружил, что его вообще не нужно печатать, но опять-таки ': Class' не понравился компилятору.Я считаю, что это только для ввода переменных, как в 'var levelClass: Class', в противном случае вы должны набирать вещи с помощью 'levelClass as Class' или 'Class (levelClass)'.Я - нуб-программист, так что есть большая вероятность, что я ошибаюсь, но в любом случае это код, который мне пришлось использовать, чтобы заставить это работать.Также не забудьте «импортировать flash.utils.getDefinitionByName;»в вашу посылку.