首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

创建 Flex 组件-1 Flex 和 RIA 简介

创建 Flex 组件-1 Flex 和 RIA 简介

Flex 和 RIA 简介新的客户机-服务器模型的诞生和对更复杂的 UI 的需求要求基于 Web 的产品采用更丰富和更具响应性的应用程序设计。这些新型的应用程序通常被称为富 Internet 应用程序(RIA),它们的目标是将传统桌面应用程序的许多特征和好处引入到 Web 应用程序中。Adobe Flex 是帮助您创建 RIA 的前沿工具,它包含丰富的图表、动画、3D 效果和响应性更好的用户界面。这些特性对处于萌芽阶段的商业智能(BI)和 Web 2.0 内容的创建和交付尤为重要。核心 Web 2.0 需求通常包括异步处理、请求-响应模式处理和内容聚合等等,Flex 可以帮助您省时省力地处理这些事情。
Flex 附带许多有用的、健壮的组件,但当您需要使用 Flex 没有提供的特性并创建特定的功能时,就会面临一些困难。这篇入门级文章深入查看 Flex 的呈现引擎,并介绍将 Flex 组件集成到您的 RIA 中所需的步骤,同时还解释了从头构建新的 Flex 功能所必须了解的知识。我将特别讲解 Flex 及其功能。我还将减少 Flex 和 Java™ 编程语言之间的相似性,然后从呈现引擎的角度讨论 Flex 组件的生命周期。在这个过程中,我将深入讲解扩展和构建 Flex 组件的细节,包括仔细查看 Flex 组件的生命周期,以及关于 Flex 组件的提交、度量和布局的微妙细节。Flex 组件自动为您处理了许多事情,但是离开这些预构建的组件之后,您很快就会不知所措。我将解析一部分 Flex 组件的工作原理,让您在需要提供这些行为时知道如何做。
Web 开发标准不断变化Flex 和其他竞争性技术(比如 JavaFX、Ajax 和 Silverlight)都是引领当今 Web 开发变革的先行者,并且对用户希望如何可视化数据产生巨大的影响。Flex 及其竞争对手都是比较新的技术,并且都在尝试克服跨浏览器可移植性、安全性和客户端缓存限制等问题。
Flex 最强大的对手之一是 Ajax。它们的功能有一部分是重叠的,但是它们应用的领域却大不相同。Flex 的特长是丰富复杂的图形结构,而 Ajax 主要用于基于文本的内容。Ajax 通常与 HTML 结合使用,并且用 XML 或 JSON 传输数据,而 Flex 不仅支持 XML 和 JSON 数据传输,甚至还支持二进制格式。在数据传输速率和紧凑性方面,支持二进制数据传输让 Flex 远远领先于 Ajax。
Flex 的优势Flex 提供了许多引人注目的优势。Flex 的大部分优点源于它构建在广泛使用的 Adobe Flash Player 之上。Flex 的主要优点包括:
  • 完整的浏览器可移植性。任何支持 Flash Player 的浏览器(涵盖了大部分浏览器)都支持 Flex 及其脚本语言 ActionScript (AS)。这与 Ajax 形成鲜明的对比,Ajax 受在不同浏览器中实现的不兼容 JavaScript 的影响。
  • 一致的观感。Flash Player 以向所有操作系统和浏览器提供一致的观感著称。Flex 使用的是 Flash Player 引擎,所以它也将提供一致的观感。
  • 健壮的安全性。Flex 利用经过大量严谨测试的 Flash Player 安全模块。
  • 丰富的 UI。Flex 受益于 Flash Player 的 Halo Skins、渐进填充和矢量图形等特性。
  • 可伸缩的矢量图形(SVG)。Flex 优于大部分基于 RIA 的技术,因为它支持基于矢量的绘制和直接嵌入 SVG 标记文件。基于 SVG 的图像在浏览器支持的分辨率范围内都表现得很好。这与基于位图的图像形成鲜明的对比,因为位图图像在不断放大时会出现明显的失真。
  • 异步请求/响应模型。Flex 为异步处理用户请求提供完整的支持。异步处理支持 Web 站点脱离以页面为中心的模型,这种模型在收到每个用户请求时都会刷新页面。
  • 二进制数据通信。Flex 为 Flex 客户机和后端服务器之间的二进制数据传输提供完整的支持。您可以使用 Adobe 的专用 Action Message Format(AMF)格式或其他自定义格式发送数据。Flex 甚至支持从客户机到服务器的开放二进制套接字,从而实现 “真正的” 数据发送。注意,这个特性不能使用浏览器的加密设施,比如 Secure Socket Layer (SSL)。
  • 运行时共享库(RSL)和模块化。Flex 对这些特性的支持确保您能够动态地加载模块,这意味着您可以向正在运行的应用程序添加新的特性,或利用由运行在相同客户机上的其他 Flex 应用程序加载的 RSL。这能够减少应用程序特性的启动时间,因为它压缩了初始二进制文件的大小。
  • 客户端缓存。Flex 对客户端缓存提供强大的支持。只要用户授权,Flex 应用程序就能在客户端上缓存任意大小的数据,这在接下来的会话频繁请求相同的数据时减少网络数据的往返。您可以缓存任何类型的数据,包括完整的对象图形、定制类、地图和数组。这种支持要比 HTML cookie 先进得多,HTML cookie 仅允许应用程序存储字符串名称值对,并且每个 Web 站点仅能存储 4 KB 名称值对。
  • 跨浏览器通信。Flex 支持在相同类型的浏览器、相同浏览器中的不同选项卡,甚至是相同机器上的不同 浏览器中运行的应用程序之间通信。这个特性意味着许多应用程序能够共享数据,从而实现丰富的终端用户体验。
  • 流线化(Streaming)。Flex 对流线化二进制数据提供出色的支持。对于需要向终端用户传输大量数据的应用程序,流线化是至关重要的,因为它让应用程序向终端用户显示先到达的数据。
  • 强大的后台连接性。在起步时,Flex 就为流行的后台技术提供出色的支持,比如 Java Platform Enterprise Edition、Microsoft .NET 平台、Cold Fusion 和 PHP。连接性支持有助于 Flex 在客户端方面的推广。
  • 丰富的框架。Flex 为组件开发提供一个健壮的框架,并且包含许多为开发人员提供便利的开箱即用组件。这有助于实现快速开发和交付项目。
  • 调试和编辑器支持。Adobe 开发了一个健壮的、基于 Eclipse 的编辑器 Flex Builder,它大大简化了 Flex 应用程序的开发和调试。这是一个非常明智的决策。
这些强大的特性让 Flex 成为创建 UI 的最佳工具之一,不管现在还是将来。使用 Flex 进行开发的另一个好处是:您可以通过组合和重用已经构建好的组件创建一些有趣的解决方案,这非常符合 Web 2.0 的精神。不过,如果您希望从头构建新的定制组件,那么就要困难得多。Flex 提供的强大特性可能会鼓动您去创建复杂完美的组件,让它们实现专属于桌面应用程序(使用 openGL 等库构建)的优势。考虑以 Electronic Arts 赛车游戏 Need for Speed 为模板,在 Web 上编写一个游戏引擎的可能性。或者使用现实中的数据流和链接构建一个 ISP 拓扑。我相信,未来 Flex 将实现这些应用程序以及许多其他类似的应用程序,但是目前的需求和工具都还不太成熟。不管如何,企业的业务依赖于基于 Web 的 UI,并且能够大大受益于 Flex 提供的强大功能。
返回列表