А нельзя просто вектор классов сделать, и потом создавать нужный экземпляр?
точно не помню синтаксис, но как-то так
Код AS3:
private var characters: Vector.<Character> = [Character1, Characxter2, ..., CharacterN];
var character: Character = new characters[n];
ну или если нужно по идентификаторам строковым вызывать обязательно, то сделать мапу, либо объект.