我试图弄清楚为什么当我使用简单的ANT任务编译我的Flex 4库swc时,它编译为FlashBuilder编译的swc大小的三倍。
这是我编译swc的ANT脚本
<target name="compileSWC" description="compiles the Library">
<echo>Compiling Library SWC To Deploy SWC Folder</echo>
<compc debug="false
output="${bin.dir}/${Library.name}-${timeVersion}.swc"
incremental="true"
optimize="true"
headless-server="true"
verbose-stacktraces="true"
default-frame-rate="24">
<source-path path-element="${src.dir}" />
<include-sources dir="${src.dir}" includes="*"/>
<source-path path-element="${src.dir}" />
<compiler.library-path dir="${basedir}/" append="true">
<include name="${library.dir}" />
</compiler.library-path>
</compc>
<echo>Compiled Library SWC To Deploy SWC Folder</echo>
</target>
这产生了一个1,980 KB的swc。这个库文件有自定义组件,一些皮肤和图像,所以我对文件大小没问题。但是当我使用FlashBuilder将我的Library项目链接到其他Flex项目时,编译的swc只有532 KB。
我能够将FlashBuilder编译的swc移动到任何项目,它可以正常工作。
所以我想知道什么是FlashBuilder做的不同于我的ANT构建脚本来降低文件大小?我尝试将'static-link-runtime-shared-libraries =“true”'添加到我的ANT脚本中,但我得到了相同的结果。
感谢。
答案 0 :(得分:2)
您是否尝试过从FB编译中吐出配置并在ant任务中使用它?您可以使用编译器选项
-dump-config fb_config.xml
然后使用load-config标记将其拉入您的ant任务。
这是一篇贯穿其中的知识库文章:http://kb2.adobe.com/cps/404/kb404341.html
希望有所帮助, Ruprict
答案 1 :(得分:0)
不知道为什么但是在加载我的配置之后编译器抱怨compile.extensions,它说是一个未知的配置变量,这里是堆栈:
Buildfile: C:\Users\cgascons\Documents\workspace\TCGEngine\build.xml
generateAssets:
[echo] Target::generateAssets
compile:
[echo] Target::compile
[mxmlc] Unknown:compiler.extensions
[mxmlc] Loading configuration: C:\Users\cgascons\Documents\workspace\TCGEngine\ant_config.xml
[mxmlc] C:\Users\cgascons\Documents\workspace\TCGEngine\ant_config.xml:8
[mxmlc] Warning: 'compiler.accessible' is not fully supported.
[mxmlc] <accessible>false</accessible>
[mxmlc] C:\Users\cgascons\Documents\workspace\TCGEngine\ant_config.xml:49
[mxmlc] Error: unknown configuration variable 'compiler.extensions'.
[mxmlc] C:\Users\cgascons\Documents\workspace\TCGEngine\ant_config.xml (line: 49)
[mxmlc] <extensions>
BUILD FAILED
C:\Users\cgascons\Documents\workspace\TCGEngine\build.xml:18: mxmlc task failed
有人知道这里会发生什么吗?