1

我正在编译一个非常简单的应用程序 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 文件,它可以按预期工作,但来自 mxmlc 的 swf 文件比 Flexmojos 版本小得多:

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

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

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

谢谢

4

2 回答 2

3

看来,使用 flexmojos 的编译在输出 swf 中包含了 flex 框架类。在您的情况下使用 mxmlc 进行编译使用框架 swfs 作为 RSL

于 2011-10-05T13:49:23.487 回答
1

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

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

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

于 2011-10-05T13:59:05.463 回答