Flex / FlexBuilder: компилировать большие зависимости в модули вместо основного приложения - PullRequest
2 голосов
/ 21 июля 2010

У меня есть модуль, MyModule, для которого требуется большая библиотека:

<mx:Module>
    <mx:Script><![CDATA[
        import com.huge.library.AwesomeThing;
        var myThing:* = new AwesomeThing()
    ]]></mx:Script>
    ...
</mx:Module>

И на эту большую библиотеку не ссылаются из моего основного приложения, кроме как через MyModule:

<mx:Application>
    <MyModule />
</mx:Application>

Но при сборке с помощью Flex Builder * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1011* * * * * *1011* * * * * НЕ НЕОБХОДИМО.

Итак, есть ли способ заставить Flex Builder поместить com.huge.library в MyModule.swf вместо MyApp.swf?

Ответы [ 2 ]

2 голосов
/ 22 июля 2010

Ответ, если ваш пример кода - это то, как вы извлекаете модуль, - это использовать ModuleLoader и НЕ иметь прямой ссылки на модуль в вашем основном приложении.Ваше приложение должно выглядеть так:

<mx:Application>
    <mx:ModuleLoader />
</mx:Application>

, и вы должны загрузить модуль, выполнив аналогично loadModule («myModule.swf»)Удачи, Джереми

0 голосов
/ 21 июля 2010

У вас есть ссылка на ваш модуль в основном приложении?Что-то связывает его с основным приложением, в противном случае оно не будет включено.

Проверьте отчет о ссылках из основного приложения, чтобы увидеть, где извлекается зависимость.

В FB3 шага:

Открыть свойства для проекта

Вкладка Flex Compiler

Добавить -link-report = true к дополнительным аргументам компилятора.

Сборка приложения.

Проверка отчета о связях.1.2.3.4.1.1.

Редактирование из комментариев.

Запуск отчета о связях для вашего модуляи уменьшите его до чисто зависимостей, которые вы хотите исключить.

Теперь добавьте следующую строку в дополнительные аргументы компилятора для вашего основного приложения

-load-externs = report.xml

где report - это отчет об урезанной ссылке.

Это предотвратит связывание зависимости в вашем основном приложении.

...