Vim调用Ant编译swf并自动调试

或许很少有人像我这么极端吧,放着好好的盗版XP和盗版Flash Builder不用,偏要去鼓捣什么Vim……

当然,在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

  1. Ant下载页面下载最新版的Ant。我将它解压到D:\ant;
  2. Ant需要安装JRE,但是如果你安装JDK的话,支持的task更多,所以现在下载JDK并安装,我将其安装到D:\Java\jdk1.6.0_25;
  3. 设置环境变量JAVA_HOME到D:\Java\jdk1.6.0_25,设置环境变量ANT_HOME到D:\ant;
  4. 将D:\Java\jdk1.6.0_25\bin和D:\ant\bin加入环境变量PATH。

Vim的设置

只需一步,将下面这句代码加入你的vimrc即可:

set makeprg=ant "设置编译器为ant 

Ant的设置

将下面两个文件复制到你的项目文件夹(即src文件夹的上层文件夹)这两个文件的最新版本在这里:https://gist.github.com/944712

 1# 设置FLEX SDK的路径
 2FLEX_HOME=c:/Program Files/Adobe/FlashBuilder4Plug-in/sdks/4.1.0
 3
 4# 设置源文件路径
 5# {$basedir} 就是本文件所在的目录
 6SRC_DIR =${basedir}/src
 7
 8# libs目录,一般用来放swc文件
 9LIBS_DIR =${basedir}/libs
10
11# 这个就是Flash Builder建立的bin-debug
12DEPLOY_DIR = ${basedir}/bin-debug
13
14#自定义的类库源码
15LIBS_DUDU = e:/works/duduw_as3lib/src
 1<!-- 载入配置文件 -->
 2
 3<!-- 确定flexTasks.jar的位置 -->
 4
 5<!-- 清理部署目录中的内容 -->
 6
 7<!-- 将资源目录复制到部署目录 -->
 8
 9<!-- 编译 -->
10
11<!-- 需要libs的时候解开注释
12<compiler.library-path dir="${basedir}" append="true">
13	<include name="libs" />
14</compiler.library-path>
15-->
16<!-- 必须加上这行,如果不加,当使用[Embed]的标签的时候,就会出现VerifyError: Error #1014: 无法找到类 。 原因应该是没有将mx.core包编译进入。官方文档说这个属性默认是true, 不要相信它-->
17true
18<!-- 编译成可调试的版本 -->
19true			
20
21<!-- 打开调试器进行调试 -->
22
23<!-- 不能直接调用fdb,因为这样不会打开新的命令行窗口,必须使用/K或者/C参数,加上start来启动fdb -->

编译

这个就简单了,只需要在Vim下执行下面的语句:

:make

或者

:!ant

当然,也可以带参数。例如你的项目中有一个以上的主文件,你可以制作build_a.xml、build_b.xml等等,然后执行:

:make -f build_a.xml

看图片吧!

vim-ant-swf1 vim-ant-swf2

延伸阅读:设置Vim的errorformat以支持mxmlc编译器