我正在编译一个非常简单的应用程序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)正在生成一个完全不同的文件。
谁能告诉我为什么会这样,以及如何纠正它?
由于
答案 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)中相同的编译器和相同的设置 - 尽管差异非常小我们的依赖关系按预期链接。