AS3: Как создать универсальный "Класс документа" (MainTimeline?) Загруженного SWF?
У меня есть "Question.swf", который был создан из "Question.fla". Обратите внимание, что у Question.fla нет класса документов, связанных с ним. (Обратите внимание, что это устаревший контент, и существует более 14 000 вариантов "Question.swf"; изменение всего этого нереально).
Теперь у меня есть основное Flash-приложение, которое загружается в Question.swf во время выполнения. Я знаю, что у Question.swf автоматически создается "Класс документа", который представляет всю "стадию" SWF (и что он называется "MainTimeline"). Я хочу, чтобы это приложение могло создавать несколько экземпляров этого класса Document.swf Document... как я могу?
Я работаю с Flash/AS3 с 2006 года (я очень хорошо знаю, как загружать / использовать внешний контент, домен приложений и т. Д.), Но я не знаю, как это сделать!
Вещи, которые я пробовал, но которые не сработали, включают запрос соответствующего ApplicationDomain с помощью hasDefinition( "Question_fla.MainTimeline") - это возвращает false - а также запуск getQualifiedClassName() для моего объекта loader.content - это просто возвращает MovieClip.
1 ответ
Я не уверен, как дублировать основное содержание загрузчика. Однако разумный обходной путь может заключаться в загрузке SWF-байтов один раз и создании нескольких загрузчиков из этих байтов:
Загрузите ваши SWF-байты с помощью URLLoader:
var urlloader : URLLoader = new URLLoader(); urlloader.load(new URLRequest("your url here"));
После загрузки используйте байты для создания новых экранных объектов:
var loader : Loader = new Loader(); loader.loadBytes(urlloader.bytes);
Используйте экранный объект loader.content загруженного загрузчика в списке отображения (или сам загрузчик).