内容简介
近几年来,Flex已经成为基于Flash平台开发富Internet应用程序(RIA)的主流技术,而且Flex 3的发展潜力也十分令 人兴奋。 Adobe Flex 3高级编程》一书中全面深入的资源不仅为读者提供有关Flex的基础知识,而且揭示了如何充分 利用Flex 3来创建统一的Internet和桌面应用体验。 《Adobe Flex 3高级编程》将详细介绍Flex 3与Flash平台在各个方面的区别与联系,同时也会提供客户端Flex应用 程序开发和最佳实践方面的扩展知识。其中将解释Flex Builder可以实现的功能,开发简单Flex 3应用程序的方法,以 及使用Flex 3框架类和组件的方法。同时,您也会看到一些更高级的主题,如数据集成、架构框架和高级工具。 通过学习本书的详细示例,无论您是否具备Flex开发经验,这本权威性的指南都将帮助您快速上手和使用Flex 3。
前 言 近几年,Flex已经成为基于Flash平台开发富Internet应用应用程序(RIA)的主流技术。在创建Internet与桌面应用的独特体验方面,Flex和Flash平台总会给人们带来意想不到的效果,然而这些技术在若干年前是根本无法实现的。本书将全面地指导您理解并掌握这种技术。 Flash平台已经具备非常完善的功能和技术,并渗入到Web与桌面富应用程序开发这个领域。紧随着技术变化的节奏,同时还要探索关于Flex开发综合性的参考信息,这是非常具有挑战性的事情。作为一种语言参考以及通用开发技术的起点,Adobe Flex文档发挥了极佳的作用,但是我们觉得其还有非常巨大的发展空间,可以用于扩展和解释说明关于Flex的更高级功能的用法。与此同时,市面上有太多的图书在揭示该技术时仅仅局限于“蜻蜓点水”,迫使开发人员需要通过在线教程与博客来完善自己的在该领域的知识。因此,本书也试图针对那些涵盖了基本技术的相关主题介绍一些更为深入的信息。 第一作者Joseph Balderson描述了自己从事该项目的原因: 在2007年夏天,我以前的一个Flex学生询问了我一个问题,打听是否有这样一本书可以使他全面地掌握该技术。这件事使我深受启发:目前还没有这样的书-- 当前的Flex开发完全依赖于特定的主题与开发人员的经验水平。恰好此时,我和Wrox出版社正在讨论负责编写Professional Flex系列的可能性。多么好的一次机会啊!我将研究课题从Flash转向Flex开发仅仅是几年前的事情,而现在我可以按照自己的意愿来编写Flex方面的书籍。因此,我联系了我最敬佩的同事,并逐步组建了一个由Flex开发人员--?作者和技术编辑组成的优秀团队,来共同完成本书的编写工作。 本书读者对象 如果您是一位Flash或ActionScript 3.0开发人员,并期待扩展您在Flex领域的知识和经验,那么这本书将非常适合您。本书的前几章将揭示Flex Builder的功能与如何开发简单的Flex应用程序。后面,我们将会学习使用Flex框架的类和组件。当准备工作做好后,本书最后的3部分内容将会介绍一些可以真正地提高应用程序效率的高级技术。 如果您一名企业应用程序开发人员,并精通其他的编程语言,比如Java、ColdFusion或者C#,那么本书的前几章将会全面地展示Flex究竟是什么以及这些技术是如何组合起来的。在短时间内熟悉了Flex框架的类与组件之后,我们就可以跳到本书的后3部分,这部分内容将介绍一些高级工具、框架以及数据集成技术,来帮助您快速地构建企业应用程序。 如果您是一位Flex开发人员,那么本书将有助于您全面深入地理解基本技术、中级技术以及高级客户端和服务端开发的相关技术,同时,还会揭示一些最佳实践与高级工具的使用方法。 无论您将自己定位为Flex初学人员、中级开发人员,还是高级企业程序员,您都可以在本书中找到所感兴趣的内容。 本书内容 本书旨在深入、全面地阐述我们所谓的“Flex 3生态系统”的相关技术。因此,其目标不仅是涵盖该技术的基础和区分Flex与Flash平台之间的多方面关系,同时也会对客户端的Flex应用程序开发、最优开发实践以及开发环境进行介绍,而且还深入地探讨了更为高级的和企业级的主题,例如数据集成、架构框架,以及传统Flex参考书中未能涉及的一些高级开发工具。 对于那些使用Flex进行RIA开发保持观望态度的读者,我们的目标也在于向其展示如何进行尝试并大胆地去尝试它--?Flex还是不错的。 本书的另一个目标是要提供理论与实践之间的一种平衡。如此,本书也可以被用作一本参考指南或字里行间附带有大量练习的一个活动学习工具。在有些章节,例如在第Ⅷ部分中,有些习题的风格尽可能地被设计地和其他章节类似,允许对使用不同语言所实现的服务端数据集成进行比较。例如,您比较熟悉如何集成Flex与Java,就可以将其与使用PHP实现的版本进行比较,这样您就可以非常快速地上手并运行它。这么做我们就可以花费最小的代价来掌握某些技术。 本书还附带有大量实用的建议、技巧以及“陷阱”。这些“陷阱”在社区博客和列表中比在Adobe文档中出现得更为普遍,我们所提供的附带内容是为了缓解有些Flex开发人员在某个特定主题方面所遇到的挫折感,这些主题涵盖的内容相当零散,而且也没有得到足够的重视,甚至根本就没有进行相关的记录。 关于AIR的题外话 虽然其他的图书(比如Adobe AIR:Create-Modify-Reuse以及Beginning Adobe AIR:Building Adobe Integrated Runtime)可能非常深入地探讨了开发AIR应用程序这方面的内容,但是本书将会采用另一种独特的方式来介绍AIR文档。本书没有将AIR开发的主题描述成一种单独的技术或主题,而是在Flex开发更大的背景下进行介绍。如此一来,读者就可以学习同时为浏览器和桌面创建Flex应用程序,该主题很少能在特定的AIR文本之外的地方找到。事实上,AIR基本上被视为另一种“附加”的框架,而且“Flash-AIR”框架与“Flex-AIR”框架之间的区别仅仅是在于文本的不同,这样我们可以进一步增加读者在各种与Flex和Flash相关的技术之间通用性的认识。 本书结构 本书大致上被分为3个主要“版块”,其中每个“版块”都拥有自己的“部分”和章节,大体分布如下。 ●第Ⅰ~Ⅱ部分--?描述Flex技术的基础。 ●第Ⅲ~Ⅶ部分--?描述客户端应用程序开发。 ●第Ⅷ~Ⅻ部分--?描述服务器端集成与高级工具。 该书又被分成了12个部分,每部分涵盖一个特定的主题,并且将这些指定的主题进一步划分成了若干章节: ●第Ⅰ部分简述了Flex与Flash平台技术生态系统的基础、基本的ActionScript语言,以及Flex开发环境。 ●第Ⅱ部分深入探讨了使用Flex Builder IDE构建应用程序,其中包括MXML语言规范。 ●第Ⅲ部分介绍了使用Flex以及AIR框架构建应用程序的基础知识。 ●第Ⅳ部分涵盖了一些更为高级的Flex框架开发的主题。 ●第Ⅴ部分深入探讨了设计与构造Flex组件、可视效果,以及通过Flex使用声音和视频功能,其中包括将Flash内置资源集成到Flex应用程序中。 ●第Ⅵ部分介绍了些Flex框架的组件,其首要任务是处理或显示应用程序中的数据。该部分也讨论了Flex与AIR中的拖拽功能,还有资源和数据的定位。 ●第Ⅶ部分概括了Flash Player与浏览器之间和AIR与桌面环境之间的客户端数据通信。 ●第Ⅷ部分深入阐述了使用HTTP请求与Web Server的服务器端通信,还有使用Flash Communication Server构建在线视频应用程序的内容,同时还介绍了AIR中的本地数据存储通信。 ●第Ⅸ部分重点介绍了LiveCycle Data Services与BlazeDS。 ●第Ⅹ部分从介绍性到一个高级的应用程序开发视角,深入探讨了Cairngorm的微架构框架。 ●第Ⅺ部分介绍了在构建有效与高性能Flex应用程序中所需要的各种技术、策略以及最佳实践。 ●第Ⅻ部分提供了更高级和更全面的Flex工具集,例如调试器、概要分析器、单元测试框架、日志框架和动画框架。 ●附录A为开发人员提供了一个参考以便开发人员从其他语言迁移到ActionScript与Flex,而且还讨论了ActionScript、Java以及C++语言之间的差异。 使用本书的必备条件 本书的示例可以运行在任何支持Flash Player与AIR的操作系统上--?Windows、OS X还有Linux。虽然关于Flex Builder的章节都是基于Windows操作系统创建的,但是那些练习依然可以正常运行在OS X操作系统中的Flex Builder上。如果您希望使用某种开发环境而不是Windows或OS X,例如Linux或Ubuntu,那么可能需要在选择的编辑器中使用开源的Flex SDK。 最好的方法是您需要PC或Mac的一个Flex Builder副本,它通常可以在Adobe Store或合法零售商处在线购置。由于Flex Builder与Flex SDK、Flash和AIR彼此密不可分,因此我们需要在开始之前对它们进行配置。 第Ⅷ~Ⅻ部分中涉及更高级内容的章节可能需要访问Adobe的服务器产品,例如LiveCycle Data Services或Flash Media Server,其中有些产品开发人员可以获取一张免费的开发人员许可证进行访问。参见后续章节可获取更详细的信息。 源代码 当您查阅本书示例时,您可以选择手动键入所有代码,或者使用本书附带的源码文件。本书使用的所有源码都可以从上进行下载。检索到该站点后,只需输入本书的标题(使用搜索框或者使用标题列表中的某项),然后单击链接图书详细信息页面的Download Code按钮来获取本书的所有源代码。 本书中的代码还可以从公开的Subversion库中获取,这样您就可以选择要下载要的代码。参见第9章可以了解更多关于在Flex Builder环境下使用Subversion的细节。 本书的代码库 本书的全部代码都可以从Assembla主页上访问和下载。 ●项目页面: ●库URL: 还可以通过以下URL在浏览器中浏览代码库: 由于许多图书具有类似标题,因此您可能发现通过ISBN检索图书非常方便;本书的ISBN:978-0-470-22364-2。 当我们下载完代码后,使用您喜欢的解压工具解压它。或者,我们可以直接访问主要的Wrox代码下载页:/dynamic/book.download.aspx,以查看本书中涉及的可用代码和其他的Wrox图书。 勘误表 我们尽可能地努力来保证正文和代码中不会出现错误。然而,这并不是绝对的,失误在所难免。如果您在本书中发现有错误,例如拼写错误或者有缺陷的代码段,我们将非常感激您的反馈。通过反馈这个勘误表,您可能会节省其他读者困惑的时间,与此同时,也将会帮助我们提供给读者更高质量的信息。 要查找本书的勘误表页面,您可以访问,然后使用搜索框或标题列表项来定位该标题。然后,在Book Search Results页面上,点击Errata链接。在该页面上您可以查看由Wrox编辑发布的在本书中提交的所有错误信息。 包括勘误表链接的完整图书列表也是可用的:/misc-pages/booklist.shtml。 如果在勘误表页面上您不能识别您所发现的错误,那么请单击Errata Form链接,然后完成该表格将您发现的错误发送给我们。我们将会检查这些信息,如果情况属实,我们将在本书的勘误表页面上记录这个错误并在本书的下个版本中修正该问题。 P2P邮件列表是为作者和读者之间的讨论而建立的。读者可以在上加入P2P论坛。该论坛是一个基于Web的系统,用于传送与Wrox图书相关的信息和相关技术,与其他读者和技术用户交流。该论坛提供了订阅功能,当论坛上有新帖子时,会给您发送您选择的主题。Wrox作者、编辑和其他业界专家和读者都会在这个论坛上进行讨论。 在上有许多不同的论坛,帮助读者阅读本书,在读者开发自己的应用程序时,也可以从这个论坛中获益。要加入这个论坛,必须执行下面的步骤: (1) 进入,单击Register链接。 (2) 阅读其内容,单击Agree按钮。 (3) 提供加入论坛所需的信息及愿意提供的可选信息,单击Submit按钮。 (4) 然后就可以收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。 提示: 不加入P2P也可以阅读论坛上的信息,但只有加入论坛后,才能发送自己的信息。 加入论坛后,就可以发送新信息,回应其他用户的帖子。可以随时在Web上阅读信息。如果希望某个论坛给自己发送新信息,可以在论坛列表中单击该论坛对应的Subscribe to this Forum图标。 对于如何使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作原理,以及许多针对P2P和Wrox图书的常见问题解答。要阅读FAQ,可以单击任意P2P页面上的FAQ链接。