为什么Flexmojos会生成不同大小的swf到mxmlc?

时间:2011-10-05 12:01:54

标签: flex flex4 flexmojos flex-mojos

我正在编译一个非常简单的应用程序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&amp; 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文件,但mxmlc的swf文件比Flexmojos版本小得多:

mxmlc      Main.swf   43k
flexmojos  Main.swf  367k

这非常令人担忧,因为我在Eclipse(使用mxmlc)中开发,但我的主构建脚本(使用flexmojos)正在生成一个完全不同的文件。

谁能告诉我为什么会这样,以及如何纠正它?

由于

2 个答案:

答案 0 :(得分:3)

看来,使用flexmojos进行编译包括输出swf中的flex框架类。在您的案例中使用mxmlc进行编译时使用framework swfs as RSL

答案 1 :(得分:1)

MXMLC将从Flex SDK安装中提取flex-config.xml,该安装指定Flex运行时的默认链接(主要是RSL) - 意味着更小的SWF文件。

我不熟悉Flexmojos的工作原理,因此您需要学习如何设置等效参数。可以告诉Flexmojos使用相同的默认配置XML文件。

我使用Gradle实现了Flex构建,我们有不同的文件大小,即使我们应该使用与Flash Builder(Eclipse)中相同的编译器和相同的设置 - 尽管差异非常小我们的依赖关系按预期链接。