Flash Buider编译Flex项目很慢,卡死。实在不敢恭维。工作的原因,要使用Ant编译,无奈,Adobe官方脑残的帮助文档,关于Ant的介绍简直就是鸡肋,实在让人愤慨。
准备:
- flexsdk(4.6) 下载地址http://www.adobe.com/devnet/flex/flex-sdk-download.html
- java jdk (1.6以上)
- ant apache-ant-1.9.4 下载地址 http://ant.apache.org/
- ant-contrib (为什么需要这个,我还没仔细追究) 下载地址 http://sourceforge.net/projects/ant-contrib/
第一步,安装JDK,设置JAVA_HOME环境变量,安装路径自己根据实际情况
第二步,解压flexsdk,d:\flexsdk4.6\bin 此目录结构即可
第三步,解压ant d:\apache-ant-1.9.4\bin 此目录结构即可
第四步,解压ant-contrib,目录结构为 docs,lib,ant-contrib-1.03b3.jar,将lib目录中所有jar文件和ant-contrib-1.03b3.jar拷贝放到 d:\apache-ant-1.9.4\lib目录中
第五步,进入d:\flexsdk4.6\lib目录,将所有jar包拷贝,放到d:\apache-ant-1.9.4\lib中,可避免编译过程中出现的[mxmlc] 错误: PermGen space ,进入d:\flexsdk4.6\ant\lib目录,拷贝flexTask.jar到d:\apache-ant-1.9.4\lib,否则无法编译。
flexsdk各文件夹作用解释
- ant\ ant编译flex的源码和jar文件,用户可根据自己需要重写代码并生成jar包。
- asdoc\ 文档
- bin\ 编译工具
- framework\ flex框架,css样式,编译默认配置文件
- include\ 不知何用
- install \貌似是安卓的调试驱动
- lib \ 不多赘述
- runtimes\
- samples\ 样式
- templates\编译模板(坑爹的迷惑。。。。因为mxmlc根本不从这里拿模板,模板在flexTask.jar包里)
<?xml version="1.0" encoding="UTF-8" ?>
<project name="DSViewCIRSys" basedir=".">
<!-- 定义ant存放位置 -->
<property name="ant.lib.dir" value="D:\apache-ant-1.9.4\lib" />
<!-- 定义Flex SDK存放位置 -->
<property name="FLEX_HOME" value="D:\flexsdk4.6\" />
<!-- 初始化时间格式,以便使用 -->
<tstamp>
<format property="TODAY" pattern="yy.mm.dd" />
</tstamp>
<!-- 导入ant支持包 -->
<path id="ant.classpath">
<fileset dir="${ant.lib.dir}">
<include name="*.jar" />
</fileset>
</path>
<!-- 定义目标编译结果路径 -->
<property name="dist.home" value="./dist" />
<property name="dist.home.src" value="./dist/src" />
<property name="dist.home.libs" value="./dist/libs" />
<property name="dist.home.bin" value="./dist/bin" />
<!--<property name="dist.home.assets" value="./dist/assets" />-->
<!-- 定义源码路径 -->
<property name="project.home" value="./" />
<property name="project.home.src" value="./src" />
<property name="project.home.libs" value="./libs" />
<!--<property name="project.home.assets" value="./assets" />-->
<property name="release.system" value="./dist/release/system"/>
<property name="release.custom" value="./dist/release/custom"/>
<property name="release.user" value="./dist/release/user"/>
<target name="build">
<antcall target="init"/>
<antcall target="confusion"/>
<antcall target="compileFP"/>
<antcall target="wrapper"/>
<antcall target="moveConfigXml"/>
<antcall target="copy3"/>
</target>
<!-- =================================================================== -->
<!-- 初始化 -->
<!-- 清除dist目录; 将源码复制过去. -->
<!-- =================================================================== -->
<target name="init">
<taskdef resource="flexTasks.tasks" classpathref="ant.classpath" />
<!-- <taskdef resource="confusion.tasks" classpathref="ant.classpath" /> -->
<taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="ant.classpath" />
<echo message="Flex SDK Home: ${FLEX_HOME}" />
<delete dir="${dist.home}" />
<mkdir dir="${dist.home}" />
<mkdir dir="${release.system}" />
<mkdir dir="${release.custom}" />
<mkdir dir="${release.user}" />
<copy todir="${dist.home.src}">
<fileset dir="${project.home.src}" />
</copy>
<copy todir="${dist.home.libs}">
<fileset dir="${project.home.libs}" />
</copy>
<!--<copy todir="${dist.home.assets}">
<fileset dir="${project.home.assets}" />
</copy>-->
</target>
<!-- =================================================================== -->
<!-- 混淆代码 -->
<!-- =================================================================== -->
<target name="confusion" depends="init">
<echo message="star confusion code..." />
<!-- <for param="file">
<path>
<fileset dir="${dist.home.src}">
<include name="**/*.as" />
</fileset>
</path>
<sequential>
<confusion fileName="@{file}" />
<echo message="@{file} is confusioned!!" />
</sequential>
</for>-->
</target>
<!-- =================================================================== -->
<!-- 编译Flex Project 项目 -->
<!-- =================================================================== -->
<target name="compileFP" depends="confusion">
<echo message="start compile Flex Project..." />
<for param="file">
<path>
<fileset dir="${dist.home.src}">
<include name="**/*.mxml" />
</fileset>
</path>
<sequential>
<!-- 通过正则表达式取出modules中的模块文件,进行批量编译~! -->
<propertyregex override="yes" property="compile.target.name"
input="@{file}" regexp="(.*)src(.*)(mxml)" replace="\1bin\2swf" />
<mxmlc warnings="false" file="@{file}" output="${compile.target.name}" debug="false"
incremental="true">
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml" />
<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>
<show-actionscript-warnings>false</show-actionscript-warnings>
<show-binding-warnings>false</show-binding-warnings>
<source-path path-element="${dist.home.src}" />
<!--<source-path path-element="${dist.home.assets}" />-->
<include-libraries file="${dist.home.libs}" />
</mxmlc>
<!-- 清除缓存文件 -->
<delete file="${compile.target.name}.cache" />
<echo message="Compiled @{file} =====>> ${compile.target.name}" />
<echo message=" " />
</sequential>
</for>
</target>
<target name="wrapper" >
<taskdef name="html-wrapper" classname="flex.ant.HtmlWrapperTask" classpath="${ant.lib.dir}/flexTasks.jar" />
<html-wrapper output="${basedir}\dist\release\system" swf="Index" history="true" height="100%" width="100%" title="大话西游" bgcolor="white" />
<html-wrapper output="${basedir}\dist\release\custom" swf="Index" history="true" height="100%" width="100%" title="" bgcolor="white" />
<html-wrapper output="${basedir}\dist\release\user" swf="Index" history="true" height="100%" width="100%" title="" bgcolor="white" />
<echo message="Generate HTML OK" />
</target>
<target name="moveConfigXml">
<copy todir="${dist.home}/bin">
<fileset dir="${project.home.src}" >
<include name="Config.xml"/>
</fileset>
</copy>
</target>
<target name="copy3">
<copy todir="${release.system}">
<fileset dir="${dist.home.bin}" >
</fileset>
</copy>
<copy todir="${release.custom}">
<fileset dir="${dist.home.bin}" >
</fileset>
</copy>
<copy todir="${release.user}">
<fileset dir="${dist.home.bin}" >
</fileset>
</copy>
<echo message="Copy 3 Success" />
</target>
</project>
以上是我们工程需要而配置。个别工程,自行改动。
229

被折叠的 条评论
为什么被折叠?



