Hello,Flex

2010-02-22  籽藤 

  一篇《用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在企业级应用方面应该有很大的前景:)

356°/3563 人阅读/0 条评论 发表评论

登录 后发表评论