您是否已经厌倦了FlexBuilder2蜗牛的编译速度,如果是的话,这里正好有您想要的!
FlexBuilder2插件安装的编译速度实在是慢如蜗牛,今天终于不能忍受了,所以就想直接用mxmlc直接手工编译,可是每次都需要输入命令的方式也够繁琐的,就自然想到了JAVA自动批处理编译的利器ANT了,动手前先查看Flex2文档,一看条目有一条是说使用ANT编译MXML,以为不用自己操心了,进入一看,MM的文档还没有写好呢,晕...
说动手就动手,首先先关闭FlexBuilder2的自动编译:
windows->Preferences->General->workspace,去除Build automatically前面的勾:
然后看下我们文件的组织结构:
- src:mxml以及as源文件存放位置
- build:编译后的swf文件存放位置
- build.xml:ANT脚本
编译的具体的思路如下:首先将src中的mxml文件复制到builder目录下,然后使用mxmlc直接编译生成swf,运行就直接调用flashPalyer8.5就可以了
以下是ANT脚本build.xml:
<?xml version="1.0" encoding="UTF-8"?> <project name="Flex 2 Quick Start" default="init"><description> Flex 2 Quick start ant project </description> <!-- set global properties for this build --> <property name="src" location="src"/> <property name="build" location="build"/> <property name="mxmlc" location="D:webFlex Builder 2 Alpha 1Flex Framework 2 Alpha 1binmxmlc.exe"/> <property name="flashPlayer" location="D:webFlex Builder 2 Alpha 1PlayerVersion 8.5 alpha 1DebugSAFlashPlayer.exe"/> <property name="mxmlFile" value=""/> <target name="init"> <!-- Create the time stamp --> <tstamp/> <!-- Create the build directory structure used by compile --> <mkdir dir="${build}"/> </target> <target name="copy" depends="init"> <copy todir="${build}"> <fileset dir="${src}/"/> </copy> </target> <target name="compile" depends="copy" description="compile the source " > <!-- Compile the mxml code from ${src} into ${build} --> <exec executable="${mxmlc}"> <arg value="-strict"/> <arg value="-optimize"/> <arg value="-accessible"/> <arg value="-coach"/> <arg value="${build}/${mxmlFile}.mxml"/> </exec> </target> <target name="run" depends="compile" description="open swf file"> <exec executable="${flashPlayer}"> <arg value="${build}/${mxmlFile}.swf"/> </exec> </target> <target name="clean" description="clean up" > <!-- Delete the ${build} and ${dist} directory trees --> <delete dir="${build}"/> </target> </project>
解释如下:
1)定义相关的属性以提供后续的任务使用:
- src/build:分别是我们上面提到的两个文件夹
- mxmlc:指向的是Flex2的命令行编译工具的位置,
- flashPlayer:指向的是FlashPlay8.5的位置。
- mxmlFile:定义的是我们将要编译的mxml文件名(不带后缀)
2)定义各子任务:
- init,负责创建build文件夹
- copy,负责将src中的文件复制到build中
- compile,复制编译文件,直接使用exec命令调用mxmlc,使用编译时类型检测(-strict)、打开警告(-coach)等编译选项,如果大家还需要其他的选项请参考FLEX2文档
- run,调用FlashPlayer查看编译出来的swf文件
3)实际编译运行,我们现在要编译QuickStart.mxml
方法1:在命令提示符下直接使用ANT命令
ant -DmxmlFile=QuickStart run
方法2:使用Eclipse内置的对Ant的支持:
- 在Eclipse中,右击build.xml,选择run as->Ant Build
- 在弹出窗口中首先点击Build选项卡,去除Build before Launch选项,因为我们这里是自定义的编译,所以不需要Build before Launch,如果没有去除的话会导致每次运行ANT,Eclipse都视图先编译,导致运行ANT编译的启动速度非常慢。
- 然后点击targets选项卡,选择run,使用FlashPlayer打开swf文件,因为我们的run task 是依靠于compile,所以执行run之前会自动编译我们需要的mxml文件。
- 点击TAB卡片中的main,在Arguments中输入,-DmxmlFile=QuickStart,这里的argument指的就是执行ANT脚本时候的参数,-D选项表示覆盖某给属性,我们这里覆盖mxmlFile属性为我们要编译的MXML文件名:QuickStart
- 点击Apply,点击Run,就开始执行ant脚本,编译成功的话,就会打开我们编译好的SWF文件了。
大功告成,Ant的方式编译比FlexBuilder2默认的编译方式快多了,更重要的是资源占用少多了,绝对不会拖垮您的Eclipse!
完整project文件下载:QuickStartWithAnt.rar
Ant的具体配置使用手册请查看:Ant使用手册





