接触Flex 技术
接触Flex 技术
机械工业出版社
Flex 技术作为开发Web 应用的利器,近年来越来越被重视。在本章中,我们将从机械工业出版社
Web 应用发展的角度,阐述Flex 技术在其中发挥的作用。同时说明Flex 技术中一些
重要的概念。
1 Flex 与Web 应用的发展
互联网的普及不过短短十几年的光景,其由最初的浏览静态信息快速发展到动态
搜索和多媒体应用。随着网络软硬件技术的进步,大多数的数字信息化应用可以通过
网络模式来实现。
在网络上运行着的各种网络应用程序,我们可以统称其为Web 应用。下面从使用
者(用户)和开发者两个群体的角度,阐述Web 应用的发展方向。
1.1 用户对Web 应用的期待
通过网络获取信息,是目前大多数网民上网的主要目的。随着网络技术的进步,
获取信息已经不是问题,我们开始关注网络“体验”,要让上网的过程成为一种享受,
特别是在视觉和操作方面。
如何提供更具魅力的Web 应用视觉效果,如何让操作更加人性化,更加有趣味性,
都是需要改进的地方。
用户对网络生活充满了期待,我们可以大胆地想象:随着科技的进步,未来的
Web 应用可以提供给人们日常生活所需要的绝大部分内容。而且,我们可以从Web
应用中得到视觉、听觉、味觉、嗅觉等全方位的感官体验。
1.2 开发者对开发技术的期待
PHP、ASP、JSP 等是开发Web 应用的常用客户端(浏览器)技术。它们都是脚
本语言,需要依赖浏览器的动态解释才能够正常显示和执行。非“所见即所得”的开
发方式给代码调试带来难度。在Web 应用的开发过程中,界面外观的调试非常耗费工
时,而且往往同一代码在不同的浏览器、同一浏览器的不同版本下会有不同的外观和
不同的动作效果。开发者非常期待能够解决上述问题的方法的出现。
脚本语言编写的界面外观表现力有限,且多为静态效果,这也是Web 应用需要改
善的地方。
技术前沿:接触Flex 技术《PHPer》
网站:http://www.phpchina.com 投稿:phper@phpchina.com 《PHPer》12/113
1.3 Flex 带来的新气象
Flex 技术能够为Web 应用带来哪些改进呢?
就目前Web 应用所处的发展阶段而言,网络技术能够做到的事情还有限,不可能
“大跃进”似的发展。着眼现在,我们更多地是从丰富Web 应用的内容、提高用户操
作体验着两方面来考虑改进Web 应用。
丰富Web 应用的内容是永远的课题,不在本书内容之列。我们主要说说如何通过
技术手段,提高用户操作体验。
如果你接触过Flash,就知道它有很强的视觉表现力,动态效果非常好。Flex 是
Flash 的姊妹,同样具有非常强大的功能。作为开发Web 应用的利器,非常值得期待。
对于开发者而言,采用Flex 开发Web 应用,能够彻底地实现MVC 的架构思想,
把用户操作部分的逻辑完全地从服务器端代码中分离出来。这能够大大简化系统架构
的复杂性,对今后Web 应用的设计产生本质的影响。
Flex 开发出的对象是扩展名为swf 的文件,通过浏览器的插件FlashPlayer(运行
时环境)解释执行。由于swf 文件是经过编译的中间代码,所以源代码不可见,安全
性又提高了一个级别。
Flex 技术的种种优点,使它进入了开发者的视野。实际的Web 应用中也越来越多
地看到它的身影。
2 Flex 技术相关概念
Flex 是Adobe 公司的产品,它是Web 应用的开发平台和工具。Flex 是一系列发
展中的技术和产品线的概括词,包括Flex Framework,Flex Builder 和服务器端产品
(FDS)等。
2006 年6 月,Flex 2 正式版发布,标志着Flex 技术已经成熟,加速进军Web 应
用领域。细心的你也许发现周围采用Flex 技术的Web 应用越来越多。但是,由于Flex
产品价格昂贵和占用网络带宽资源的缺陷,在网络带宽还是一种稀缺资源的今天,Flex
技术并没有得到大范围的普及。目前中国的市面上甚至没有几本介绍Flex 的书籍。
Adobe 公司也充分意识到了Flex 产品的不足和缺陷,在持续改进中。并于2008
年的2 月推出了最新版本Flex3,免费开源了FlexSDK。同时,Flex3 中的很多新技术
某种程度上解决了带宽资源占用大的问题。
对于很多Web 应用的开发人员而言,Flex 仍然是一项新技术,对其中很多概念的
理解可以说是仁者见仁,智者见智。在本节随后的内容中,我们将对一些重要的概念
一一进行阐述和说明,对这些概念的理解非常重要。
2.1 RIA 与Flex
RIA是Rich Internet Applications 的缩写,译为富互联网应用程序(或富Web 应用)。
技术前沿:接触Flex 技术《PHPer》
网站:http://www.phpchina.com 投稿:phper@phpchina.com 《PHPer》13/113
“富”与“瘦”是相对的概念。互联网发展至今,呈现给用户的界面外观仍然非
常单调。通过诸如PHP、JSP 等脚本语言描绘的界面外观需要由浏览器解释执行。这
些脚本语言本身的处理能力有限,浏览器能够解释的脚本也有限,这大大限制了用户
的操作体验。对于这种不丰富的表现力和操作能力,我们称其为“瘦”。这样的互联
网应用程序就是瘦互联网应用(我们身边的绝大部分网络应用是“瘦”的)。
RIA 就是在这种背景下提出的改进Web 应用现状的概念。
富互联网应用程序“富”在哪里呢?主要是两个方面的体验:
丰富的视觉体验。
丰富的界面操作体验。
Flex、Flash、SilverLight(微软产品)都是实现RIA 的技术。
2.2 RIA 既是C/S 又是B/S
RIA 是纯粹的B/S(浏览器/服务器)模式的系统,但是为什么又说它是C/S(客
户端/服务器)模式的系统呢?
C/S 模式的系统最大的优势在哪里?在于客户端程序能够分担服务器的大部分的
功能,从而降低服务器负载,降低系统架构的复杂程度。
RIA 是否也具备C/S 系统的优势呢?
当然具备。
2.3 RIA 的未来
对RIA 应用持否定态度的人主要有两个理由:
Flex 等技术实现的RIA 应用程序的体积都较PHP,JSP 界面程序大很多(通
常有数量级的差别)。界面程序的下载不但严重占用了有限的带宽资源,还使
下载时间增加。由于用户不愿意长时间等待,可能造成用户放弃使用RIA。
Flex 还没有免费。
对此,让我们思考如下事实:
大家都知道摩尔定律,从我们接触计算机开始,其性能便发生着日新月异的变化。
网络曾经只属于科研院所和一些特定的机关单位,现在已经是“飞入寻常百姓家”。
目前国内有限的带宽资源的确束缚了RIA 的发展,但是应当了解到中国的网络还处于
发展水平,欧美国家早已走在前面。我们的邻国日本已经把光纤入户作为2010 年要
实现的目标之一。
带宽,这个目前还在困扰着中国RIA 应用发展的拦路虎,在不久的将来,必定不
再成为问题。
从另外一个角度来看,RIA 的一个重要应用领域是企业内部,目前的企业内网通
技术前沿:接触Flex 技术《PHPer》
网站:http://www.phpchina.com 投稿:phper@phpchina.com 《PHPer》14/113
常非常快,其带宽足以满足企业内部RIA 应用的需求。
至于Flex 的费用问题,对于个人而言,的确是价格昂贵。但是对于有RIA 需求
的企业而言,软件的投入是必需的,投入的资金缔结了企业与软件厂商之间的法律关
系,确保了一旦软件发生问题,将由软件厂商负责承担责任。对于企业,免费的午餐
未必是最恰当的选择。
Adobe 公司也有其产品战略,在未获得市场垄断地位之前,调整产品定价,也必
然遵从市场趋势,向消费者一边倾斜。
Flex 程序在客观上有着雄厚的“群众”基础。据统计,世界上超过9 成的电脑安
装的是Windows 操作系统,而Flex 程序的运行时环境“FlashPlayer”是预装在Windows
操作系统中的。也就是说世界上绝大多数的电脑都已经具备了运行Flex 程序的条件。
需求引导着市场,RIA 既具备C/S 模式系统的优势,又兼备B/S 系统容易部署的
优点。我们还是应该乐观地看待以Flex 为代表技术的RIA 的发展。
2.4 Flex 与Flash 的关系
Flex 与Flash 都是Adobe 公司旗下产品。
Flash 最初的产品定位是二维矢量动画制作工具。随着产品功能的增强,Flash 和
Java 等服务器端代码相互配合已经能够开发RIA 系统。但是,由于Flash 的产品定位,
使得它更多体现的是如何开发二维矢量动画。贯穿开发过程中的最主要的概念是层、
时间轴。
开发二维矢量动画和开发Web 应用程序是两个完全不同的领域。Flash 中层、时
间轴的概念对于Web 应用程序的开发者而言,是完全陌生的。对层和时间轴的操作也
是与Web 应用程序通常的做法格格不入的。
一个现实是:Flash 程序的开发者不善于开发应用程序,而应用程序的开发者通
常又不善于开发Flash 程序。
为了占领RIA 的市场,Adobe 公司推出了Flex。Flex 和Flash 采用了相同的底层
技术,并增减了一些功能。Flex 和Flash 的操作界面完全不同,这是为了适应应用程
序开发者的思维方式和使用习惯。
对于Flex 与Flash 的关系,我们可以这样理解:
它们的底层技术是相同的。Flex 能够实现的功能,Flash 同样能够实现;但是



已有