Поиск в Интернете дает сотни ответов на вопрос, почему getDefinitionByName не работает - потому что определение класса, которое вы пытаетесь получить, не включено в swf.
Это не та проблема.
Мое приложение загружает SWC во время выполнения, разархивирует его, читает XML и отображает список классов, которые были в этом SWC. Затем вы можете выбрать класс, и он будет добавлен на сцену.
Когда я загружаю SWC и пытаюсь использовать getDefinitionByName, я получаю следующую трассировку:
получение класса: com.company.assets: AppFooterShadow
ошибка: ошибка № 1065: переменные активы: AppFooterShadow не определен.
Компания com.company сорвана с начала!
Из кода, аналогичного следующему:
try
{
trace( "getting class: " + definition );
var currentClass : Class = getDefinitionByName( definition ) as Class;
}
catch( e : Error )
{
trace( "error: " + e.message );
}
Если я введу имя класса в поле ввода текста и попытаюсь загрузить, чтобы оно работало нормально - точно такая же строка передается в функцию.
Кто-нибудь понял, что здесь происходит? Мне кажется очень странным.