使用ant编译flex的mxml application

在现实应用中,如果使用未购买license的(或破解版的)FlexBuidler去编译flash文件,是要付法律责任的,特别是企业开发。所以,你必须利用Flex SDK自己手工编译。

 

Adobe提供了一个FlexTasks这个Ant扩展来辅助进行编译操作,在我的另一篇博客中简要介绍了如何通过其来build swc文件,详细见:http://blog.csdn.net/james999/archive/2009/01/05/3715018.aspx 。有关Adobe的FlexTasks这个扩展,可以参见:http://livedocs.adobe.com/flex/3/html/help.html?content=anttasks_3.html 。

 

另外,使用ant来build还有一个好处,是比FlexBuilder本身提供的Merged into code模式编译方式,编译的swf文件要小很多,基本上能够小35%左右,这可不是一个小数目哦。但Ant build没有提供RSL模式,这是也是一个弊端。如果你希望能够实现RSL方式,来缓解客户端的加载数据量,那估计最好是购买正版的Flex Builder。

 

如果你直接按照参考文档中的<mxmlc>命令来编译mxml应用,如果你的应用中需要引用很多assets,那么很不幸,你将会得到如下之类的异常:

  1. main:  
  2.     [mxmlc] Loading configuration file D:/IDE/Adobe/Flex Builder 3/sdks/3.0.0/frameworks/flex-config  
  3. .xml  
  4.     [mxmlc] D:/WorkDir/Flex Projects/Walle/primeton.bps.modeler.flow/flex_src/flowdesigner3_362209.c  
  5. ache (The system cannot find the file specified)  
  6.     [mxmlc] D:/WorkDir/Flex Projects/Walle/primeton.bps.modeler.flow/flex_src/com/primeton/flow/diag  
  7. ram/editor/figures/ActivityIconFactory.as(16): col: 10: Error: unable to resolve 'assets/images/manu  
  8. al_activity.gif' for transcoding  
  9.     [mxmlc]  
  10.     [mxmlc]         [Embed(source='assets/images/manual_activity.gif')]  
  11.     [mxmlc]          ^  

 

这是因为你的这些assets资源无法被编译器找到。

在Shreyas Purohit的一篇博客中,介绍根本原因,以及可以解决这个问题的一种方式,可参考:

http://sacrosanctblood.blogspot.com/2008/12/flex-solution-to-error-unable-to.html

 

下面的样例代码,就是根据我的本机的情况,做的修改。大家也可以参考一下。整个思路就是:动态把assets文件,编译成一个swc包,然后在编译flex application的时候动态引用进来。

 

首先,你需要引入ant-contrib这个ant扩展组件,在http://ant-contrib.sourceforge.net/ 上有介绍及下载。然后添加进你的build.xml中。

 

我的目录结构如下:

|- project
     |--flex_src
           |
           |-- flowdesigner.mxml
           |-- assets
           |     |-- icons
           |     |-- images
           |     |-- css

 

 

在build.properties中,声明你的flex文件地址,及src地址:

  1. ###### Flex Properties ##############################  
  2. # change this path to your flex sdk directory  
  3. # Use "/" in your directory path e.g. C:/FlexSDK/3.0.0  
  4. FLEX_HOME=D:/IDE/Adobe/Flex Builder 3/sdks/3.0.0  
  5.   
  6. ###### Project Properties ###########################  
  7.   
  8. src-dir=${basedir}/flex_src  

下面是build.xml

 

 

然后运行ant命令,即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值