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

作者: nick 分类: as, flash, flex 发布时间: 2011-05-02 13:59 ė 6没有评论

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

# 设置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
?Download build.xml
<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

发表评论

您的电子邮箱地址不会被公开。

Ɣ回顶部