Flex和AIR之间的转化
2009-08-02 09:04
253 查看
在开发RIA应用程序的时候,为了方便客户我们有时候需要将Flex程序转化成AIR程序,这样用户就不需要每次都在浏览器中输入URL了,直接点击桌面上的AIR程序图标就可以快速进入RIA应用程序。AIR程序也给了我们开发人员一些灵活性,方便我们获取用户的文件系统,这在有的情况下是非常重要的。为了把业已完成的Flex程序转化成AIR程序,我们只需要在已有的Flex程序中,把你的主mxml文件复制一下,然后把root tag<mx:Application>改为<mx:WindowedApplication>,再添加一个AIR的描述文件,用amxmlc编译器代替mxmlc编译器来编译我们的AIR相关的文件。这样基本上就可以完成从Flex向AIR转化了,但有时候情况并没有那么简单,比如说我们在Flex程序中用到BrowserManager等浏览器相关的API,而AIR中则没有浏览器等概念,这时候我们就需要修改相关模块和组件了,为了最大限度重复利用已有的代码,我们可以选择Flex SDK提供的条件编译。在已有的Flex程序中把和浏览器相关的API用另一种方式来解决以满足AIR程序的需要,这些和AIR相关的或特有的代码直接放在Flex浏览器相关的代码下面,然后在Flex浏览器相关的代码和AIR特有的代码上面添加条件编译选项就可以在编译的时候有选择的编译了,这样我们在Ant脚本中用mxmlc和amxmlc来编译Flex工程就可以得到我们需要的Flex程序和AIR程序,从而最大限度的利用了已有的工程代码。我们不需要另外创建一个AIR工程,而只需在已有的Flex工程中添加几个文件和修改一些特有的代码,就轻松解决了Flex到AIR之间的转化,至于AIR到Flex之间的转化问题,需要考虑AIR一些特有的扩展的API。
注:在Flex SDK 的frameworks目录下,有两个和Flex与AIR编译相关的文件,这两个文件分别是flex-config.xml和air-config.xml,打开这两个文件分别在</compiler>标记的上面添加
<define>
<name>NAMES::WEB</name>
<value>true</value>
</define>
<define>
<name>NAMES::WEB</name>
<value>false</value>
</define><define>
<name>NAMES::AIR</name>
<value>true</value>
</define>
注:在Flex SDK 的frameworks目录下,有两个和Flex与AIR编译相关的文件,这两个文件分别是flex-config.xml和air-config.xml,打开这两个文件分别在</compiler>标记的上面添加
<define>
<name>NAMES::WEB</name>
<value>true</value>
</define>
<define> <name>NAMES::AIR</name> <value>false</value> </define>
和
<define>
<name>NAMES::WEB</name>
<value>false</value>
</define><define>
<name>NAMES::AIR</name>
<value>true</value>
</define>
这样我们就可以在程序中用条件编译选项了,就像C++中的#IFDEFINE预编译选项差不多。
相关文章推荐
- Flex和AIR之间的转化
- ActionScript,Flash,Flash/Flex Builder,FlashPlayer,AIR,swf,swc,swz之间的区别
- Flash, Flex, Air, Flashplayer之间的相互关系是什么?
- JavaScript、Flex、Air之间的相互通信的研究
- flex的air转化为exe文件
- Flash, Flex, Air, Flashplayer之间的相互关系是什么?
- android GPS度分秒与double之间的相互转化
- CvMat,Mat和IplImage之间的转化和拷贝
- Flex和AIR中的垃圾回收实践之对象缓存[译文]
- Flash Player 11, AIR 3, and Flex/Flash Builder 4.6
- FLEX&AIR 界面展示。
- JSON数据与NSDictionary和NSArray之间的转化
- C++ 字符串转化为数组 有负数 数字之间为空格间隔
- FlexAir获取MAC地址代码
- CvMat,Mat和IplImage之间的转化和拷贝
- FLEX AIR实践—FLEX AIR XML Encode Bug
- Date、String、Calendar类型之间的转化
- unicode与char之间转化
- Android开发——Bitmap,byte[],Drawable之间的相互转化
- 页面之间转化