一篇《用Flex开发Google Map应用程序》(http://www.ibm.com/developerworks/cn/web/wa-lo-flexgoogle/)激起了我的学习热情。自毕设之后,我就开始关注RIA,富客户端的应用已经成为趋势了。
个人习惯所致,在接触新技术名词的时候,总要搜搜它的优缺点。没想到网上的口水战还真多啊,大都是将Flex与Ext作比较。在我的印象中,Ext是个大型的js库,样式统一,界面美观。但由于我做的都是小应用,往往会优先选择轻量级的jQuery。至于Flex究竟是个啥东东?我决定来耍一耍。
先贴出网上的Flex简介扫扫盲:
Flex 是 Abode 公司贡献的开源框架,通过它构建出的应用程序既可以通过 Adobe Flash Player 部署在所有主流的浏览器上,
也可以通过 AIR(Adobe Integrated Runtime) 部署在所有主流操作系统的桌面上。
Flex主要包含mxml、actionscript这两种文件。通过Flex SDK可在cmd下将mxml编译成swf文件。
测试代码demo.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
[Bindable]
private var helloStr:String
="<font color=\"#FF0000\" size=\"35pt\">Hello World</font>";
]]>
</mx:Script>
<mx:Panel title="This is a Panel" width="300" height="200" horizontalAlign="center" verticalAlign="middle">
<mx:Text htmlText="{helloStr}">
</mx:Text>
</mx:Panel>
</mx:Application>
Flex SDK同JDK原理是一样的,JDK把java源码编译成class字节码文件,而Flex SDK将mxml文件编译成as文件,最终生成swf。(连命令都如此相似:一个是javac,一个是mxmlc~)
如: G:\flex_sdk_4.0.0.10485\bin>mxmlc D:\source\demo.mxml
输入上述命令后,你会看到如下内容:
正在加载配置文件“G:\flex_sdk_4.0.0.10485\frameworks\flex-config.xml”
D:\source\demo.swf(63791 字节)
打开swf文件,即看到效果:
细心的你会发现,目录下只有mxml和swf文件,却没有.as(ActionScript)文件。如果想要看mxml产生的ActionScript代码,在cmd中输入:G:\flex_sdk_4.0.0.10485\bin>mxmlc -keep-generated-actionscript D:\source\demo.mxml
ActionScript文件就会生成在目录下的generated文件夹中。
====================
学习的过程还出现了一段小插曲:Flex SDK生成的swf文件打开后是一篇空白,根本没有内容。我纠结了许久,找了其他代码,重新下载安装Flash Player,仍存在这样的问题。当我几近抓狂时,效果却出来了。我这才意识到,是机器太慢,我太性急……Oh,My Lady gaga,我想飙泪~
文末要说的是,Flex并不是Flash,尽管公用ActionScript,但两者使用的库不完全相同。Flash更偏向美工,而Flex偏向开发人员。所以,Flex可以做丰富交互功能的应用程序,而Flash则讲究特效处理,花哨的多媒体展示。其次,感觉Flex在企业级应用方面应该有很大的前景:)