Почему 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) - хотя разница очень мала и наши зависимости связаны, как и ожидалось,

Другие вопросы по тегам