[引用]Ant 在Flex中的应用


[引用]Ant 在Flex中的应用
2011年08月13日
  重要提醒:系统检测到您的帐号可能存在被盗风险,请尽快查看风险提示,并立即修改密码。  |  关闭
  网易博客安全提醒:系统检测到您当前密码的安全性较低,为了您的账号安全,建议您适时修改密码    立即修改  |  关闭
   自由的~行
  __________________可以自由于这世界者,才是真正的命运! Ant是一种基于Java的build 工具,适用于大项目中,你的代码不必使用编译器,其他开发成员直接使用脚本就可以编译一个版本。使用Ant 不必纠结与shell命令,配置文件是xml文件。
  1,安装
  Ant 是开源项目,所以又两种方式安装,一种是编译好的exe,另外一种是源码。下载地址是:http://ant.apache.org/bindownload.cgi。下载完编译好的版本之后,发现有如下图所示: 
  
  图1 安装jdk 下载地址 http://www.java.com
  设定环境变量:我的系统 ,ANT_HOME :E:\studyfiles\flex\blazeds\compile tool\apache-ant-1.8.2;JAVA_HOME:C:\Program Files\Java\jdk1.6.0_03;JRE_HOME:C:\Program Files\Java\jre6。Ant 目录添加到path中,如图: 
  
  图2 安装配置完成之后,查看是否安装成功。Cmd 中键入 ant -help ,得到如下结果: 
  
  图3 2,build.xml 文件 这里给出用于编译swf 的mxmlc build 文件 ,和compc 编译为类库即swc 文件的build文件。
  Mxmlc 文件
  Flex Ant Tasks Build Script" default="compile flex project">
  
  
  
   
  
  
  
   
  
  
  flex project" depends="init">
  
  
  
  false 
  
  
  
  Compc 文件
  
  
  Flex Builder 3/sdks/3.2.0" />
  
  
  
  
  
  
  
     
  
  
  
    
    
    
    
    
    
    
    
  
  
  
     
  
  
  
  
  
   3,着重注意事项:
  (1)Flex Embed资源错误Unable to transcode asset处理
  一段简单的代码flex编译居然报错:Unable to transcode ../assets/border.png.解决方法很简单,将 '../assets/border.png' 改为 '/../assets/border.png'就是在前面加个斜杠。
  (2)Flex国际化
  首先先介绍下国际化:Flex国际化一般采用的是类似struts的bundle类似的方法,至于好处嘛会使用STRUTS的人都应该知道。直接在项目中写.properties文件,具体做法如下: 在项目上点击右键,选择Properties。然后选择Flex Compiler,在Additional Compiler arguments下面已经配置好了语言包,默认为-locale en_US。 这时我们可以用一个locale目录来简单定制我们额外设置(当然不包括Flex内部控件的语言)的语言设置。 
  比如改为:-locale=en_US -source-path+=g:\flexproj\locale\{locale}。这样在g盘的flexproj目录下建立一个locale目录。 
  然后目录下放置包含我们要扩展的语言文件的文件夹就可以了。比如:g:\flexproj\locale\en_US。 
  注意:locale下面的目录名应该和-locale=设置的名称一致。那么这样,我们就可以使用额外的语言设置了。举个例子吧:查看项目属性里Additional Compiler arguments配置为 -locale+=en_US -source-path+=g:\flexproj\testgoufang\locale\{loca le} 然后在对应的locale目录下添加国际化资源文件,g:\flexproj\testgoufang\locale\en_US\strings.prope rties 这一部分跟struts相似。里面的内容为键=值的形式,如:Title=测试项目 User=用户名 Password=密码 
  使用的时候可以通过[ResourceBundle]元数据标签来绑定locale文件,如:  
  [ResourceBundle("strings")]  即绑定上文提到的strings.properties文件,然后我们可以通过ResoueceManager来读出其中的内容,比如: 
  var Title : String = resourceManager.getString("strings", 'Title'); 
  或者绑定到控件: 
  [Bindable] 
  private var Title:String; 
  ………… 
  Title = resourceManager.getString("strings", 'Title'); 
  ………… 
   
  如此多个项目共享统一资源如果编译的时候没有引用资源文件,则会报相应的资源文件未找到。在build.xml中添加资源文件即可
  (3)编译后的mx文件夹下所有图片大小为0字节
  Mx中包括controls和container文件夹,主要包括用到的Flex控件的图片,因此需要在source-path中指定图片的位置,否则找不到图片,大小就为0喽;加入以下脚本即可:
  大概目录位置是E:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\projects\framework\src 里面包括一个mx文件夹,是Flex用到的所有资源图片的存在位置。
  (4) 工程目录中包括mxml时编译不到swc中
  因为我们编译的时候首先是读取src文件夹中的所有类,然后指定compc参数的include-classes参数,这时只是指定的所有as文件,而mxml是不属于某个包里面的,因此这里需要使用include-sources参数来指定。具体代码如下:  
  
  

猜你喜欢

转载自nmv884rp.iteye.com/blog/1571471