基于Flex-config.xml的命令行编译(转)
2012-10-25 22:54
232 查看
为什么要推荐使用flex-config.xml的方式呢,flex-config.xml涵盖flex编译及其他控制的所有选项,对于命令行编译来说,mxmlc复杂的编译选项对于命令行的输入简直就是噩梦,而使用flex-config.xml可以方便的修改编译选项,并且一次修改就可以在后续的所有mxmlc编译过程中保存下来,还有个重要的地方,flex-config.xml文件是一个xml文件,更加的友好,而且其中每个参数都有详细的注释,对于我的调整编译参数也更方便。
因为Adobe的Flex文档有很多语焉不详的地方,为了避免大家在命令行编译过程中出现混乱,我们现在来仔细解释基于flex-config.xml编译过程的细节。
首先我们来对环境做些约定,定义以下几个变量以方便我们后面的行文:
$SDK:Flex 2 SDK所在目录
$frameWorks:Flex 2 框架根目录,一般为$sdk下面的frameworks
$flexApp:flex项目的根目录。该目录包含了我们项目的源码等。
首先我们我们使用mxmlc命令要导出一份缺省的flex-config文件,注意Linux下导出配置会报找不到flex-config.xml错误,这是个BUG,不要理他就可以了,实际文件已经导出成功:
代码
cd $SDK/bin
./mxmlc -dump-config flex-config.xml
这个导出的flex-config.xml将是我们以后编译flex的配置文件,所有的编译参数同将通过修改该文件来实现。
接着将上面的导出的文件复制到我们的flex应用根目录中:
cp flex-config.xml $flexAPP因为flex-config配置文件的特殊性,要脱离flex框架使用改文件的话,我们还需要对flex-config.xml文件进行一点小小的修改,修复一下路径指向的问题:
首先修改36行,将其中的:
xml 代码
<path-element>libs/playerglobal.swcpath-element>
修改为:
xml 代码
<path-element>${flexlib}/libs/playerglobal.swcpath-element>
接着修改82、83行,将其中的
xml 代码
<path-element>libspath-element>
<path-element>locale/{locale}path-element>
改为:
xml 代码
<path-element>${flexlib}/libspath-element>
<path-element>${flexlib}/locale/{locale}path-element>
继续修改97行,将其中的:
xml 代码
<manifest>mxml-manifest.xmlmanifest>
修改为:
xml 代码
<manifest>${flexlib}/mxml-manifest.xmlmanifest>
最后,295-297行,将其由:
<!---->
<load-config></load-config>${flexlib}/flex-config.xml
修改为:
<!---->
修改好后保存,然后使用如下方法编译flex:
mxmlc -load-config flex-config.xml +flexlib=$frameWorks Flex_Test.mxml
以上命令,假定您以及将$SDK/bin加入到了PATH中了,参数中的+flexlib=$frameWorks表示增加token flexlib的定义,定义该值为$frameWorks,以供flex-config.xml中使用。
这样我们每次要改变编译参数直接修改flex-config.xml文件可以了,flex-config里面的参数调整,大家可以直接查看flex-config.xml文件中的注释,该注释非常说明的很清楚,但如果还有不清楚,可以大家可以查看官方文档,这里只提一下我们比较常用的几个地方:
1. 11行,<actionscript-file-encoding></actionscript-file-encoding>:对应compiler.actionscript-file-encoding编译参数,设定actionscript的编码,这个对于异构环境特别重要,特别是系统编码与WEB服务器编码不一致的时候这个参数非常有用。我们建议您将其设置为utf-8。注意该参数默认是关闭的,需要打开注释才能启用。
2. 25行,<debug></debug>:是否编译debug支持swf文件,缺省为false。
3. 65-68行,<include-libraries></include-libraries>:如果您的项目要使用第三方的SWC类库,可以在这里指向你要使用的SWC文件。同样该参数默认是关闭的,需要打开注释才能启用。
4. 76行,<keep-generated-actionscript></keep-generated-actionscript>:是否保留编译过程中的中间actionscript文件,Flex中的mxml的编译,实际上是现生成对应mxml的ActionScript代码,然后在编译ActiongScript的,这里保留的就是这个代码,这些代码对于您对Flex的研究很有帮助,有兴趣的朋友可以设置其为true来查看中间AS代码。该参数默认为false不保留。
5. 120-123行,<source-path></source-path>:指向第三方ActiongScript源代码根目录,如果您的项目要使用第三方的Ascriptscript源码,在此设置。注意在当前目录下的As源码,不需要在这里另外设置。
另外,提醒使用Linux的朋友,在Linux下进行Flex开发,如果使用命令行编译的话,我们推荐您使用最近adobe labs发布的fcsh编译,fcsh使用了预载入技术,编译的速度会快点。顺便提下,linux下除了命令行的方式,也可以使用Flex Ant Task的编译方法,最后当然也可以使用FlexBuilder集成开发环境编译的方式。
原文:http://blog.eshangrao.com/index.php/2007/01/30/335-flexflex-configxml
转载地址:http://swingchen.iteye.com/blog/131921
因为Adobe的Flex文档有很多语焉不详的地方,为了避免大家在命令行编译过程中出现混乱,我们现在来仔细解释基于flex-config.xml编译过程的细节。
首先我们来对环境做些约定,定义以下几个变量以方便我们后面的行文:
$SDK:Flex 2 SDK所在目录
$frameWorks:Flex 2 框架根目录,一般为$sdk下面的frameworks
$flexApp:flex项目的根目录。该目录包含了我们项目的源码等。
首先我们我们使用mxmlc命令要导出一份缺省的flex-config文件,注意Linux下导出配置会报找不到flex-config.xml错误,这是个BUG,不要理他就可以了,实际文件已经导出成功:
代码
cd $SDK/bin
./mxmlc -dump-config flex-config.xml
这个导出的flex-config.xml将是我们以后编译flex的配置文件,所有的编译参数同将通过修改该文件来实现。
接着将上面的导出的文件复制到我们的flex应用根目录中:
cp flex-config.xml $flexAPP因为flex-config配置文件的特殊性,要脱离flex框架使用改文件的话,我们还需要对flex-config.xml文件进行一点小小的修改,修复一下路径指向的问题:
首先修改36行,将其中的:
xml 代码
<path-element>libs/playerglobal.swcpath-element>
修改为:
xml 代码
<path-element>${flexlib}/libs/playerglobal.swcpath-element>
接着修改82、83行,将其中的
xml 代码
<path-element>libspath-element>
<path-element>locale/{locale}path-element>
改为:
xml 代码
<path-element>${flexlib}/libspath-element>
<path-element>${flexlib}/locale/{locale}path-element>
继续修改97行,将其中的:
xml 代码
<manifest>mxml-manifest.xmlmanifest>
修改为:
xml 代码
<manifest>${flexlib}/mxml-manifest.xmlmanifest>
最后,295-297行,将其由:
<!---->
<load-config></load-config>${flexlib}/flex-config.xml
修改为:
<!---->
修改好后保存,然后使用如下方法编译flex:
mxmlc -load-config flex-config.xml +flexlib=$frameWorks Flex_Test.mxml
以上命令,假定您以及将$SDK/bin加入到了PATH中了,参数中的+flexlib=$frameWorks表示增加token flexlib的定义,定义该值为$frameWorks,以供flex-config.xml中使用。
这样我们每次要改变编译参数直接修改flex-config.xml文件可以了,flex-config里面的参数调整,大家可以直接查看flex-config.xml文件中的注释,该注释非常说明的很清楚,但如果还有不清楚,可以大家可以查看官方文档,这里只提一下我们比较常用的几个地方:
1. 11行,<actionscript-file-encoding></actionscript-file-encoding>:对应compiler.actionscript-file-encoding编译参数,设定actionscript的编码,这个对于异构环境特别重要,特别是系统编码与WEB服务器编码不一致的时候这个参数非常有用。我们建议您将其设置为utf-8。注意该参数默认是关闭的,需要打开注释才能启用。
2. 25行,<debug></debug>:是否编译debug支持swf文件,缺省为false。
3. 65-68行,<include-libraries></include-libraries>:如果您的项目要使用第三方的SWC类库,可以在这里指向你要使用的SWC文件。同样该参数默认是关闭的,需要打开注释才能启用。
4. 76行,<keep-generated-actionscript></keep-generated-actionscript>:是否保留编译过程中的中间actionscript文件,Flex中的mxml的编译,实际上是现生成对应mxml的ActionScript代码,然后在编译ActiongScript的,这里保留的就是这个代码,这些代码对于您对Flex的研究很有帮助,有兴趣的朋友可以设置其为true来查看中间AS代码。该参数默认为false不保留。
5. 120-123行,<source-path></source-path>:指向第三方ActiongScript源代码根目录,如果您的项目要使用第三方的Ascriptscript源码,在此设置。注意在当前目录下的As源码,不需要在这里另外设置。
另外,提醒使用Linux的朋友,在Linux下进行Flex开发,如果使用命令行编译的话,我们推荐您使用最近adobe labs发布的fcsh编译,fcsh使用了预载入技术,编译的速度会快点。顺便提下,linux下除了命令行的方式,也可以使用Flex Ant Task的编译方法,最后当然也可以使用FlexBuilder集成开发环境编译的方式。
原文:http://blog.eshangrao.com/index.php/2007/01/30/335-flexflex-configxml
转载地址:http://swingchen.iteye.com/blog/131921
相关文章推荐
- Flex:基于Flex-config.xml的命令行编译
- 基于Flex-config.xml的命令行编译(转)
- Flex:基于Flex-config.xml的命令行编译
- Flex中采用Flex-config.xml进行命令行的编译
- Flex配置文件remoting-config.xml
- cmake工具使用简明教程(基于命令行和gui,编译到windows和linux双平台)
- [Flex]基于Flex+Webservice+xml的Poll System的构想
- Flex配置文件-services-config.xml
- Invalid root. The WEB-INF/flex folder must contain either flex-config.xml or services-config.xml 错误相关
- Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配
- Flex命令行编译选项列表
- Flex配置文件-proxy-config.xml
- 关于flex调用config.xml基础地图
- flex DataGrid与Tree 基于xml的绑定
- flex-config.xml位置
- [转]在修改flex-config.xml后如何让flex自动重新部署程序
- 基于命令行编译打包phonegap for android应用 分类: Android Phonegap 2015-05-10 10:33 73人阅读 评论(0) 收藏
- 基于命令行编译打包phonegap for android应用 分类: Android Phonegap 2015-05-10 10:33 72人阅读 评论(0) 收藏
- 错误记录--Invalid root. The WEB-INFflex folder must contain either flex-config.xml or services-config.xml
- -locale en_US -services "../../WEB-INF/flex/services-config.xml"