Laan's steps..

Feed Rss

使用ant编译air程序

11.12.2009, air, flex, by .

参考:http://blog.devsandbox.co.uk/?p=163

之前介绍过一篇在flex下使用ant的文章:http://www.laan.so/?p=1208。感觉还挺顺利的,不过正真使用起来还确实有点麻烦。这里讲讲使用ant对air编译。

官方给的Flex Ant Task中只有mxmlc和compc两个task。而编译air的话,其实使用的是amxmlc, 比如:

amxmlc -locale=en_US,zh_cn,ja_JP  -default-size=600,400  — Main.mxml

这样的话,就需要使用java task了。如下:

<property name=”SDK_HOME” value=”C:/Program Files/Adobe/Flex Builder 3/sdks/3.2.0″/>
<property name=”MXMLC.JAR” value=”${SDK_HOME}/lib/mxmlc.jar“/>
<property name=”ADL” value=”${SDK_HOME}/bin/adl”/>
<property name=”ADT.JAR” value=”${SDK_HOME}/lib/adt.jar”/>

定义好之后就可以建立任务了:

<target name=”test_air_compile”>
<java jar=”${MXMLC.JAR}” fork=”true” failonerror=”true” maxmemory=”512m”>
<arg value=”-file-specs=Main.mxml”/>
<arg value=”-output=Main.swf”/>

<arg value=”-load-config=${SDK_HOME}/frameworks/air-config.xml”/>

<arg value=”-local-fonts-snapshot=${SDK_HOME}/frameworks/winFonts.ser”/>
<arg value=”-debug=false”/>
<arg value=”-warnings=false”/>

<arg value=”-default-size=600,400″/>
</java>
</target>

原理就是调用mxmlc.jar,并传递相关参数。需要注意两个地方:

1.加载默认编译config:<arg value=”-load-config=${SDK_HOME}/frameworks/air-config.xml”/>

2.可能会遇到找不到./winFonts.ser的问题,需要指定该文件:<arg value=”-local-fonts-snapshot=${SDK_HOME}/frameworks/winFonts.ser”/>

这样就完成编译了。然后的任务就是打包air程序了:

<target name=”test_air_package” depends=”test_air_compile”>
<java jar=”${ADT.JAR}” fork=”true” failonerror=”true”>
<arg value=”-package”/>
<arg value=”-storetype”/>
<arg value=”pkcs12″/>
<arg value=”-keystore”/>
<arg value=”${KEY_STORE}”/>
<arg value=”-storepass”/>
<arg value=”密码”/>
<arg value=”Main.air”/>
<arg value=”Main-app.xml”/>

<arg value=”-C”/>
<arg value=”${COMPILE_DIR}”/>
<arg value=”Main.swf”/>
<arg value=”-C”/>
<arg value=”${COMPILE_DIR}”/>
<arg value=”assets/abcmodel.swf”/>
<arg value=”-C”/>
</java>
</target>

-c标识进入目录。有的时候你可能需要将不同目录下的资源打包进去,就需要使用-c命令了。

这样就ok了。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>