Почему Flexmojos производит файл swf другого размера для mxmlc?
Я собираю очень простое приложение, Main.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<s:Label
text="Flex"/>
</s:Application>
С mxmlc (SDK 4.0.0.14159):
mxmlc
-context-root=a
-services=.\src\main\webapp\WEB-INF\flex\services-config.xml
src\main\flex\Main.mxml
-output src\main\webapp\Main.swf
А также с Flexmojos 3.9 и 4.0-RC2, используя SDK 4.0.0.14159:
<configuration>
<output>src/main/webapp/Main.swf</output>
<services>src/main/webapp/WEB-INF/flex/services-config.xml</services>
<contextRoot>a</contextRoot>
</configuration>
Выходные данные обеих сборок создают действительный SWF-файл, который работает должным образом, однако SWF-файл из mxmlc намного меньше, чем версия Flexmojos:
mxmlc Main.swf 43k
flexmojos Main.swf 367k
Это очень беспокоит, потому что я разрабатываю в Eclipse (который использует mxmlc), но мой основной скрипт сборки (который использует flexmojos) создает совершенно другой файл.
Может кто-нибудь сказать мне, почему это, и как это исправить?
Спасибо
2 ответа
Кажется, что компиляция с flexmojos включает в себя классы фреймворка flex в выводе swf. И компиляция с mxmlc в вашем случае использует framework swfs как RSL.
MXMLC будет тянуть в flex-config.xml
из установки Flex SDK, в которой указывается связывание по умолчанию (в основном RSL) для среды выполнения Flex, то есть SWF-файл меньшего размера.
Я не знаком с тем, как работают Flexmojos, поэтому вам нужно научиться настраивать эквивалентные аргументы. Может быть возможно сказать Flexmojos использовать тот же XML-файл конфигурации по умолчанию.
Я реализовал сборку Flex с использованием Gradle, и у нас есть файлы разных размеров, хотя мы должны использовать тот же компилятор и те же настройки, что и в Flash Builder (Eclipse) - хотя разница очень мала и наши зависимости связаны, как и ожидалось,