转自
http://www.laaan.cn/?p=1215
参考:
http://blog.devsandbox.co.uk/?p=163
之前介绍过一篇在flex下使用ant的文章:http://www.laaan.cn/?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命令了。