Полагаю, вы, по сути, говорите о создании различных классов во время выполнения.Возможностей множество:)
Один из вариантов:
Вы управляете картой (в основном, объектом), где ключ - это идентификатор вашей «единицы», а значение - объект класса., вот так:
var unitMap:Object = {
"hero": UserGameCharacter,
"enemy": NPCharacter,
"chicken": ChickenCharacter
};
Обратите внимание, что значения являются объектами класса, а не экземплярами.Кроме того, давайте предположим, что все классы символов либо расширяют базовый класс символов, либо реализуют интерфейс символов.Теперь, когда вы хотите создать «юнит», вы должны сделать это:
var newCharacter:Character = new (unitMap["hero"])();
Таким образом, вам больше не нужен оператор switch.Надеюсь, это поможет в качестве отправной точки.