图书前言

2004年Macromedia公司一推出Flex,我就被它深深吸引——“使用标记语言,像设计网页那样制作Flash SWF文件”。这个特性让我意识到,原来SWF的世界很宽广。2005年,由于工作需要,我开始在实际开发中接触Flex技术,当时使用的是2.0的测试版。在Flex 2.0正式版发布前,Macromedia先后发布了三个测试版。2.0版本无疑是Flex产品线的一个分水岭,它真正推开了RIA的大门。

不仅是传统的Flash开发人员,还包括越来越多的Web开发人员,都开始注意到Flex这一富有活力的新技术,网络上开始涌现出大量优秀的应用作品。2007年,“Flex”成为Web应用中被谈论得最多的词汇。Flex在富互联网应用程序(Rich Internet Application,缩写为RIA)中的卓越表现,吸引了大批企业用户,这一热潮很快波及全球。市场的需求直接刺激了人才供给,很多程序开发人员都加入到Flex的学习队伍中。

2006下半年,我无意中在闪吧论坛和经典论坛上看到了清华大学出版社策划编辑陈冰的“招聘计算机图书作者”的帖子,希望寻找作者来写一本关于Flex从入门到实际应用开发的书籍。当时我看到帖子,有点心动,仔细阅读了征稿启事,觉得自己的能力尚浅,始终没有鼓起勇气。没有想到的是,过了几天,居然收到了陈冰的邀请邮件,问我是否有写作意向,于是有了后面的第二封第三封邮件。现在回头再看,这封邮件对我而言意义非凡。

让我下定决心的缘由,可以归为两点:

一,和同道中人分享自己的编程心得。

从事编程工作至今,时间并不算长。从一个门外汉走到现在,这中间可谓是“痛并快乐着”。和大部分的Web开发者一样,我是个半路出身的程序员,早期使用ASP、PHP等进行Web开发,后来接触Flash编程后,一发不可收拾,成为了Flash应用开发的忠实Fans。

Flex和Flash的亲密关系,使得Flash开发人员成为了Flex最早的一批用户。这两者都使用ActionScript语言,但从技术角度上看,Flex和Flash的差异很大。对初学者而言,绝不能等而视之。常常地,Flash开发者在初学Flex时,会觉得无从下手。没有了时间轴,很多人不知道该怎么编写代码。但一旦适应了Flex的开发模式,就会如鱼得水。由于Flex程序和Web程序有较多相似之处,传统的Web开发者会更容易理解Flex的开发框架,但进入到实际开发后,因为缺乏ActionScript的编程经验,对动画的理解不够透彻,又会遇到很多棘手的问题。

由于工作经历,我先后从事过Web开发和Flash开发,接触过各种类型的RIA应用,积累了一定经验,同时,对RIA技术也形成了自己的见解。我希望可以利用这个机会,通过讲述自己的实际心得和想法,为初学者提供帮助,与老鸟交流技术,互进互补。

二,丰富Flex的中文开发资料库。

截至本书截稿,国内还没有出版一本关于Flex技术的中文书籍。

很多先进的技术,都是由国外传进来的。在学习新技术的过程中,语言的障碍已经成为一个不大不小的问题。虽然现在英语教育已经很普及,但由于语言环境的因素,大多数开发人员仍无法像阅读中文那样快速的阅读英文技术书籍。与国外相比,同类技术的中文书籍的出现往往要晚一年左右。在Web技术日新月异的今天,这个速度远远不够,中文资料的匮乏已经成为困扰初学者和开发者的一个大难题。

希望本书的出版能够为学习Flex的朋友提供实实在在的帮助,为国内的Flex技术的繁荣尽一份力。

关于本书内容

本书作为一本Flex技术的从入门到应用开发的手册与指南,适合Flex初学者和Flex应用开发人员。全书从Flex的历史到Flex的运用、从Flex基础知识到Flex程序实战开发,循序渐进,深入浅出。在讲解中,围绕程序语言的特性,结合实际开发中的常见技术点,有针对性地展现了Flex的应用技巧。每一章的实例程序,都是经过尽心挑选的,这些例子涵盖了实际编程中频繁出现的问题和重要的知识点。对读者可能遭遇的技术难题,书中都着重介绍了程序的编写思路,而不仅仅是附上简单的代码注释。学习一门语言,最关键的地方并不在于掌握语法和各种对象或函数的用法,而是分析问题、解决问题的能力。只有这样,才能深刻领会程序设计的精髓,举一反三,活学活用。

虽然全书的内容层层递进,但并不要求读者必须按照章节顺序来阅读。对于有编程经验的读者,可以根据自己的需要,选择性地阅读感兴趣的章节。初学者对书中提供的实例,如果理解有困难,可以先跳过。随着知识层次的深入,读者对Flex的认识也会进一步提高,结合前后的内容,会更容易消化之前不懂的地方。

如何使用本书附带的源代码光盘

本书附带的光盘中包含了所有示例程序的源代码。存放源代码的文件夹名为“源代码”。每一章用“Chapter_N”来区分,其中,N代表章的序号,比如Chapter_2/HelloWorld表示的是第2章的示例程序HelloWorld,程序的主程序文件与程序名相同,HelloWorld文件夹下的HelloWorld.mxml即为主程序文件。

使用源代码时,请直接将程序目录中的MXML文件、CSS文件拷贝到自己新建立的程序中,如果程序中使用了图片和外部的库文件,也请一并拷贝。如果含有服务器端脚本程序,例如PHP程序,则要放在相应的服务器环境下才能正常运行。对于使用了数据库功能的程序,目录中会有database.txt文件,其中列出了数据库的表结构,方便读者重新创建数据库。

所有的代码都经过实际测试,如有问题,请与我联系,联系方式见前言最末。

要感谢的人

写这本书,对我帮助最大的莫过于我的未婚妻杨春。作为中文系的高材生,她对全书进行了反复校对,修正了大量的语法错误,感谢她为我所付出的一切!

同时,也感谢王磊为本书添加了最后两章的内容,使得本书的内容更充实更完整。

在本书的编写过程中,陈冰老师给予了很多宝贵的意见和细心的指导,如果没有他的鼓励和信任,也不会有这本书的面世,在此特别致谢。

最后,尽管我已尽了努力,但书中仍然有存在错漏的可能,真诚地希望得到读者的批评与指正。

我的联系方式:

电子邮箱:walktree@gmail.com个人网站:http://www.flex9.cn