Vim调用Ant编译swf并自动调试
在Vim下面,你可以自己写脚本调用Flex SDK的命令行编译器mxmlc进行编译,但我更愿意用Ant,原因如下:
- 配置方便
基于XML的配置文件,比命令行好读好写; - JAVA原生
Ant是JAVA写的,Flex SDK的编译器(mxmlc、compc、asdoc……)也是JAVA写的; - 通用
换用Linux或Mac,也一样用,顶多改改变量中的路径。
在Flash Builder下面,按F11后,就可以自动编译swf并打开Flash Player,并显示trace信息,以及调试断点。在Vim中也能这样么?
大部分可以。我们可以用fdb进行swf的调试工作,能看到trace信息,也能设置断点和进行调试,可惜没有Flash Builder那么直观。
但是!!!你可以用Vim写AS代码了!塞翁失马你有没有!!!!
那么,开始吧!
(注意,本文假定你了解Vim)
安装Ant
- 到Ant下载页面下载最新版的Ant。我将它解压到D:\ant;
- Ant需要安装JRE,但是如果你安装JDK的话,支持的task更多,所以现在下载JDK并安装,我将其安装到D:\Java\jdk1.6.0_25;
- 设置环境变量JAVA_HOME到D:\Java\jdk1.6.0_25,设置环境变量ANT_HOME到D:\ant;
- 将D:\Java\jdk1.6.0_25\bin和D:\ant\bin加入环境变量PATH。
Vim的设置
只需一步,将下面这句代码加入你的vimrc即可:
set makeprg=ant "设置编译器为ant
Ant的设置
将下面两个文件复制到你的项目文件夹(即src文件夹的上层文件夹)这两个文件的最新版本在这里:https://gist.github.com/944712
?Download build.properties
# 设置FLEX SDK的路径 FLEX_HOME=c:/Program Files/Adobe/FlashBuilder4Plug-in/sdks/4.1.0 # 设置源文件路径 # {$basedir} 就是本文件所在的目录 SRC_DIR =${basedir}/src # libs目录,一般用来放swc文件 LIBS_DIR =${basedir}/libs # 这个就是Flash Builder建立的bin-debug DEPLOY_DIR = ${basedir}/bin-debug #自定义的类库源码 LIBS_DUDU = e:/works/duduw_as3lib/src |
<project name="run_test" default="build"> <!-- 载入配置文件 --> <property file="build.properties" /> <!-- 确定flexTasks.jar的位置 --> <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/> <target name="build" depends="init,compile,fdb" /> <!-- 清理部署目录中的内容 --> <target name="init"> <delete dir="${DEPLOY_DIR}/run_test.swf" /> <delete dir="${DEPLOY_DIR}/assets" /> <!-- 将资源目录复制到部署目录 --> <copy todir="${DEPLOY_DIR}/assets"> <fileset dir="${SRC_DIR}/assets" /> </copy> </target> <!-- 编译 --> <target name="compile"> <mxmlc file="${SRC_DIR}/RunTest.as" output="${DEPLOY_DIR}/run_test.swf"> <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/> <source-path path-element="${LIBS_DUDU}" /> <!-- 需要libs的时候解开注释 <compiler.library-path dir="${basedir}" append="true"> <include name="libs" /> </compiler.library-path> --> <!-- 必须加上这行,如果不加,当使用[Embed]的标签的时候,就会出现VerifyError: Error #1014: 无法找到类 。 原因应该是没有将mx.core包编译进入。官方文档说这个属性默认是true, 不要相信它--> <static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries> <!-- 编译成可调试的版本 --> <compiler.debug>true</compiler.debug> </mxmlc> </target> <!-- 打开调试器进行调试 --> <target name="fdb"> <!-- 不能直接调用fdb,因为这样不会打开新的命令行窗口,必须使用/K或者/C参数,加上start来启动fdb --> <exec executable="cmd" spawn="true" osfamily="windows"> <arg line="/K start fdb ${DEPLOY_DIR}/run_test.swf" /> </exec> </target> </project> |
编译
这个就简单了,只需要在Vim下执行下面的语句:
:make
或者
:!ant
当然,也可以带参数。例如你的项目中有一个以上的主文件,你可以制作build_a.xml、build_b.xml等等,然后执行:
:make -f build_a.xml
看图片吧!
本文出自 传播、沟通、分享,转载时请注明出处及相应链接。
本文永久链接: https://www.nickdd.cn/?p=1485