Вы хотите сделать так, чтобы и Фабрика не знала классы, экземпляры которых будет создавать?
Новый паттерн "Китайская Фабрика"?
Чтобы класс вообще был в библиотеке, его хочешь не хочешь а надо упомянуть в коде. Класс, а не строку с его названием))
Есть конечно и методы с конфигом компиляции... ну не знаю, зачем так извращаться в данном случае.
Первое наивное что приходит на ум

Код AS3:
public static const HERO:Class = game.characters.playable.Hero;
public static const TROLL:Class = game.characters.enemies.Troll;
// либо
public static const ENEMIES:Vector.<Class> = new <Class>[Troll, Wyvern, Ogre, Imp, Scamp, Zombie];
// либо
private static const ITEMS:Vector.<Class> = new <Class>[Sword, Shield, Boots, Bow, Spoon];
public static function getItemClass(id:uint):Class { return ITEMS[id]; }