Если этот класс нигде не используется, то компилятор не встраивает его в конечную флешку и из-за этого getDefinitionByName его и не находит.
Можно просто завести массив или... Я делаю так:

Код AS3:
private static var __class:Object = {
"Label": gui.items.Label,
"Level1": Level1
}
public function createItem(name:String):IItem {
return new __class[name]();
}