AS3 альтернатива * _exclude.xml файлам, динамическая загрузка определений классов - PullRequest
1 голос
/ 16 июля 2011

Я вот уже пару дней бьюсь головой об стену и надеюсь, что кто-нибудь сможет направить меня в правильном направлении.

Работаю в очень большомПриложение Flash, ранее в AS2 / CS3, у меня была бы установка, подобная следующей:

root.swf
-- modules
---- code_a.swf
---- code_b.swf
-- views
---- view_a.swf
---- view_b.swf

Используя _exclude.xml файлы, я мог исключить классы, определенные в code_a и code_b из выходного файла.SWF view_a и view_b.root.swf будет отвечать за загрузку модулей кода до view_a или view_b, обеспечивая, чтобы определения классов, от которых view_a и view_b зависели, существовали.

Проблема

Мы недавно перешли на использование Actionscript 3 / CS5.*_exclude.xml файлы больше не существуют.Чтобы получить ту же функциональность, что и выше, я попробовал следующее:

Моя установка теперь выглядит примерно так:

root.swf
-- modules
---- class_a.as
---- class_b.as
-- views
---- view_a.swf
---- view_b.swf

Используйте mxmlc для компиляции root.swf, view_a.swfи view_b.swf, передав ему -externs опцию, чтобы указать классы, которые будут загружены извне (два класса в modules).Это гарантирует, что класс исключен из скомпилированного SWF.

Используйте compc для компиляции class_a.as и class_b.as в classes.swf, используя -directory=true для доступа к library.swf для внешней загрузки.

Однако, когда я пытаюсь запустить одиниз двух файлов представлений, которые зависят от classes.swf, я получаю ошибки времени выполнения, говорящие мне, что определение класса отсутствует.

Текущий обходной путь

Я разработалОбходной путь, который в настоящее время меня не устраивает, поскольку он обратен к модульному подходу, который я ранее использовал:

Вместо загрузки модулей кода я статически связываю все определения классов, требуемые дочерними фильмами, в root.swf,При сборке root.swf я использую параметр -link-report mxmlc, чтобы предоставить список включенных классов.При создании дочерних SWF-файлов я могу использовать -load-externs, чтобы гарантировать, что уже существующие определения классов не будут включены в выходные данные компиляции.

Есть ли способ, которым кто-либо знает о репликации AS2 / _excludeXML-решение, которое у меня было с использованием AS3 / CS5?

1 Ответ

0 голосов
/ 16 июля 2011

Я бы порекомендовал компилировать разделяемые библиотеки в SWC.

Существуют и другие варианты, такие как RSL:

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf674ba-7fff.html#WS2db454920e96a9e51e63e3d11c0bf69084-7f1e

Надеюсь, что это поможет.

...