Flex第一步——基于ActionScript3.0的Flex2应用开发

Flex第一步——基于ActionScript3.0的Flex2应用开发"

作者:邱彦林
ISBN:9787302162568
定价:¥68
字数:千字
页数:
出版时间:2007.12.01
开本:
版次:1-2
装帧:
出版社:清华大学出版社
简介

Flex是开发富互联网应用程序(Rich Internet Application,缩写为RIA)的利器,目前已广泛应用于各种商业领域,如电子商务、行政管理,企业业务流程自动化等方面。本书全面、详尽、深入浅出地讲解了Flex应用开发的方方面面,从最基本的Flex概念,MXML和ActionScript 3.0语法开始,围绕Flex的技术特性和Flex应用开发中常见的疑难点展开剖析。

全书共分为17章。内容包括:Flex简介、Flex的安装和开发环境的建立、MXML 语法简介、使用容器控制界面布局、使用组件处理数据和交互、使用行为对象和动画效果、ActionScript 3.0编程知识、Flex的事件机制、数据绑定、组件的使用、Flex 2.0新特性实例开发、Flex与外部的数据通信、Flex程序设计等。

书中包括四个大型应用开发实例:Flex数据库留言本、Flex产品展示系统、Flex投票系统、Flex天气预报系统。除此之外,书中还贯穿了大量Demo级小例子,让技术不再抽象,帮你快速掌握Flex开发的关键。

本书采用概念讲解与实例结合的方式,偏重于实际应用,实用性强。适合作为Flex初学者的入门权威手册和Flex应用开发人员的实用开发指南。

前言

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

目录

第一部分  走近Flex

第1章  Flex简介 1

1.1  什么是Flex? 1

1.2  Flex的特性 2

1.3  Flex和Flash的比较 3

1.3.1  产品市场定位的差异 3

1.3.2  针对不同的开发人员 4

1.4  Flex的发展和未来 4

1.4.1  Flex的最新版本Flex 2.0的新特性 6

1.4.2  Flex和它的对手们 8

第2章  Flex的安装和开发环境的建立 10

2.1  安装Flex 10

2.1.1  如何获得Flex 10

2.1.2  安装Flex Builder 10

2.2  熟悉Flex Builder 12

2.2.1  了解Flex Builder界面 12

2.2.2  菜单、工具栏和快捷键 14

2.2.3  自定义界面 15

2.3  创建我的第一个Flex程序 16

2.3.1  建立Flex Project 16

2.3.2  插入组件和代码 18

2.3.3  编译和运行程序 19

第二部分  Flex基础知识

第3章  MXML语言简介 23

3.1  MXML语法 23

3.1.1  命名规范 23

3.1.2  MXML文件结构 24

3.2  使用组件 26

3.2.1  插入组件 26

3.2.2  自定义MXML组件 27

3.3  编写ActionScript 29

3.3.1  在MXML文件中使用ActionScript 30

3.3.2  创建外部ActionScript文件 31

3.3.3  创建ActionScript类文件 32

3.4  编辑非可视化对象 33

3.4.1  创建数据 33

3.4.2  用MXML语句创建类实例 34

第4章  使用容器控制界面布局 35

4.1  管理程序的布局 35

4.1.1  控制Application的布局 35

4.1.2  Canvas,VBox和HBox 38

4.1.3  用DividedBox分割界面 40

4.2  窗口布局 41

4.2.1  Panel组件 41

4.2.2  TitleWindow组件 45

4.3  动态控制对象的布局 48

4.3.1  使用Tile显示多个按钮 48

4.3.2  更强大的Grid组件 49

4.4  方便的导航容器 51

4.4.1  Accordion组件 51

4.4.2  ViewStack组件 53

4.4.3  使用TabNavigator进行快速导航 54

4.5  表单布局 55

4.5.1  简单的用户输入表单 55

4.5.2  表单验证 56

第5章  使用组件处理数据和交互 59

5.1  常用组件的使用 59

5.1.1  Button和CheckBox 59

5.1.2  ComboBox和List 65

5.1.3  Alert组件 67

5.1.4  DataGrid组件——制作图书选购列表 69

5.1.5  Tree组件——一个使用XML作为Tree组件数据源的小例子 77

5.1.6  TileList和HorizontalList 81

5.1.7  文本处理 82

5.1.7.1  一个强有力的组件——RichTextEditor 83

5.1.7.2  设备字体和嵌入字体的应用实例 84

5.2  导航类控件 88

5.2.1  ToggleButtonBar和TabBar 88

5.2.2  使用菜单导航——创建一个简单的多级菜单 91

5.2.3  PopUpButton和PopUpMenuButton 94

5.3  控件的实例运用 96

5.3.1  制作一个简单的涂鸦板 97

5.3.2  制作一个外部图片加载器 105

5.3.3  制作一款FLV视频播放器 106

第6章  使用行为对象和动画效果 109

6.1  认识行为对象 109

6.1.1  什么是行为对象 109

6.1.2  创建行为 109

6.2  行为和组件 111

6.2.1  组件的行为和动画效果 111

6.2.2  为组件添加行为——监听动画的执行 112

6.3  常见的动画效果 116

6.3.1  模糊效果和发光效果的运用实例 116

6.3.2  放缩效果和调整大小效果 123

6.3.3  声音效果——播放MP3文件 127

6.3.4  复合效果——组合多个动画效果 128

6.4  行为和状态 132

6.4.1  了解State对象 132

6.4.2  为状态过渡添加形变动画 135

6.5  自定义行为 138

6.5.1  了解行为的运行机制 138

6.5.2  自定义动画效果——一个修改Iris效果的尝试 139

6.5.3  自定义触发器 147

第三部分  ActionScript和Flex

第7章  ActionScript 3.0编程知识 149

7.1  了解ActionScript 3.0 149

7.1.1  ActionScript的历史 149

7.1.2  AS 3.0不是AS 2.0的简单升级 150

7.1.3  面向对象的编程思想 152

7.2  AS 3.0的面向对象语法 153

7.2.1  创建类和对象 153

7.2.2  定义属性和函数 155

7.2.3  静态属性、函数和常量 160

7.2.4  继承 161

7.2.5  接口 163

7.3  数据类型和数据运算 165

7.3.1  关于数据类型 165

7.3.2  字符串 167

7.3.3  数字计算 169

7.3.4  数组的使用 170

7.3.5  类型检测和转换 173

7.4  控制程序的流程 176

7.4.1  选择语句 176

7.4.2  循环语句 178

7.4.3  跳转语句 180

7.5  本章小结 183

第8章  Flex的事件机制 184

8.1  一切从事件开始 184

8.1.1  关于事件 184

8.1.2  和以往事件机制的区别 185

8.1.3  AS 3.0的可视化对象架构和事件机制 186

8.2  事件机制的工作流程 188

8.2.1  关于事件流 188

8.2.2  事件对象 192

8.2.3  侦听和响应事件——一个侦听键盘事件的例子 196

8.3  事件机制的高级应用 198

8.3.1  事件的优先级别和弱引用 198

8.3.2  创建自定义事件 201

8.3.3  拖曳事件管理——让你的控件可拖曳! 206

第9章  数据绑定 215

9.1  认识数据绑定 215

9.1.1  数据绑定的概念 215

9.1.2  如何使用数据绑定 215

9.2  数据绑定——晋级篇 219

9.2.1  函数和类级别的绑定 220

9.2.2  使用ActionScript来定义绑定 222

9.2.3  数据绑定中的特例 225

9.3  数据绑定运用实例 228

9.3.1  实现界面的多语言切换 228

9.3.2  制作一款名片浏览器 231

第10章  组件的使用 237

10.1  设置组件的样式 237

10.1.1  如何使用样式 237

10.1.2  了解样式的运行特征 240

10.2  使用主题 242

10.2.1  什么是主题 242

10.2.2  如何使用主题 243

10.2.3  创建你的主题 245

10.3  修改组件的外观 249

10.3.1  如何定制组件外观 249

10.3.2  修改Button组件的外观 249

10.3.3  打造自己的Window组件 253

10.4  创建组件 256

10.4.1  如何创建组件 256

10.4.2  创建可视化的组件 256

10.4.3  用代码创建组件——用ActionScript来打造个性化的ToolTip 260

第四部分  Flex初级程序开发

第11章  Flex 2.0新特性实例开发 265

11.1  新的XML处理方式 265

11.1.1  如何处理XML数据 265

11.1.2  轻松制作一款RSS阅读器 271

11.2  关于正则表达式 276

11.2.1  正则表达式简介 276

11.2.2  制作一个实用的天气预报工具 278

11.3  声音控制 282

11.3.1  使用外部声音 282

11.3.2  制作一款带波形图的MP3播放器——你曾经的梦想现在可以实现了! 283

11.4  期待已久的Socket通信 291

11.4.1  Socket通信简介 291

11.4.2  使用Socket查看邮件——制作一个邮件查看器 293

第12章  Flex与外部的数据通信 299

12.1  Flash Player 9的安全机制 299

12.1.1  安全机制简介 299

12.1.2  管理跨域数据通信 302

12.2  加载外部内容 304

12.2.1  动态复制加载的图片 304

12.2.2  实现AVM 1和AVM 2的通信——一个在Flex程序中控制AS1/2编写的

Flash动画的例子 307

12.3  使用HTTPService和Web Service 311

12.3.1  HTTPService简介 311

12.3.2  Web Service简介 315

12.3.3  利用Web Service制做一款在线翻译工具 316

12.4  Flex与PHP 319

12.4.1  关于PHP 319

12.4.2  Apache,Mysql,PHP的安装和配置 319

12.4.3  PHP基础知识 325

12.4.4  使用HTTPService连接PHP——名片浏览程序的另一个版本 329

12.4.5  Remoting与AMFPHP——轻量、高效的通信方式 333

12.5  Flex与Java 337

12.5.1  Java简介 337

12.5.2  Tomcat,JDK的安装和配置 337

12.5.3  使用JSP连接MySQL 339

12.5.4  Flex Data Service和Java——一个用FDS读取MySQL数据库的例子 341

12.6  本章小结 347

第五部分  Flex程序实战开发

第13章  Flex程序设计 349

13.1  程序设计简介 349

13.1.1  程序开发中的常见问题 349

13.1.2  设计你的程序 350

13.2  MVC设计模式 351

13.2.1  了解MVC原理 352

13.2.2  单例模式 353

13.2.3  MVC和Flex 354

13.3  用户名片管理系统 356

13.3.1  功能分析和结构设计 356

13.3.2  设计MySQL数据库 357

13.3.3  编写服务端程序 358

13.3.4  编写客户端程序 361

13.3.5  实例小结 375

第14章  数据库留言本 376

14.1  功能和结构设计 376

14.1.1  功能分析和设计 376

14.1.2  数据库设计 377

14.2  编写服务器程序 380

14.2.1  知识准备 380

14.2.2  代码及解析 381

14.3  编写客户端程序 387

14.3.1  界面组成 387

14.3.2  客户端代码 388

14.4  拓展和延伸 408

第15章  产品展示系统 410

15.1  设计思路 410

15.1.1  功能分析和设计 410

15.1.2  数据库设计 411

15.2  前台用户模块 412

15.2.1  服务器端程序 412

15.2.2  客户端程序 414

15.3  后台管理模块 427

15.3.1  服务器端程序 428

15.3.2  客户端程序 430

15.3.3  上传图片 448

15.4  本章小结 452

第16章  Flex Vote System(投票系统)的分析和设计 453

16.1  系统概述 453

16.1.1  RIA的前景、本系统的功能与应用背景 453

16.1.1.1  RIA的前景 453

16.1.1.2  Flex Vote System系统的功能和应用背景 454

16.1.2  系统预览 454

16.1.3  小结 457

16.2  系统分析 457

16.2.1  构筑Flex Vote System所需要掌握的知识体系结构 457

16.2.2  小结 458

16.3  系统运行环境的构筑 458

16.3.1  JDK的配置 458

16.3.2  Tomcat的配置 459

16.3.3  Eclipse的配置 461

16.3.4  JDK+Tomcat+Eclipse环境构筑的测试 466

16.3.5  MySQL的配置 470

16.3.6  JSP带数据库的测试 473

16.3.7  Flex Plug-in For Eclipse的配置 474

16.3.8  在Eclipse中测试Flex的编译和运行 475

16.3.9  小结 477

16.4  系统设计 477

16.4.1  系统设计思想 477

16.4.2  系统功能模块和结构设计 478

16.4.2.1  系统的模块设计 478

16.4.2.2  系统的结构设计 480

16.5  数据库设计 481

16.5.1  数据库的需求分析 482

16.5.2  数据库的概念结构设计 482

16.5.3  数据库的逻辑结构设计 483

16.5.4  数据库的生成 484

16.5.5  小结 485

16.6  Flex Vote System的命名规则和结构 485

16.6.1  Flex Vote System工程的建立 485

16.6.2  JSP端的文件结构和命名 485

16.6.3  Flex端的文件结构和命名 488

16.6.4  小结 488

16.7  JSP端的JavaBean的设计 489

16.7.1  JavaBean简介 490

16.7.2  数据库连接JavaBean的设计 490

16.7.3  数据库操作JavaBean的设计 491

16.7.4  数据库表映射JavaBean的设计 493

16.7.5  小结 497

16.8  服务器端JSP的设计 497

16.8.1  SelectByUserIPFromVote.jsp的编写 497

16.8.2  SelectByUserEmailFromVote.jsp的编写 499

16.8.3  InsertAllFromVote.jsp的编写 501

16.8.4  GetAreaFromVote.jsp的编写 502

16.8.5  GetQuestion1FromVote.jsp的编写 504

16.8.6  GetQuestion2FromVote.jsp的编写 505

16.8.7  GetQuestion3FromVote.jsp的编写 506

16.8.8  Flex+JSP+MqSQL的编码问题 507

16.8.9  小结 509

16.9  客户端Flex的设计 509

16.9.1  客户端Flex的设计 509

16.9.2  TransformLanguageClass.as的设计 510

16.9.3  MessageBoxDialog.mxml的设计 513

16.9.4  FlexVoteSystem.mxml的设计 514

16.9.5  ChartViewDialog.mxml的设计 524

16.9.6  Flex Vote System的扩展 531

16.9.7  小结 533

16.10  开发的难点、注意事项和技巧 533

16.11  Flex Vote System的部署 534

16.12  本章小结 535

第17章  Flex Weather(天气预报程序)的分析和设计 536

17.1  系统概述 536

17.1.1  系统功能和预览 536

17.1.2  小结 536

17.2  系统分析 536

17.2.1  构筑Flex Weather所需要掌握的知识体系及其实现原理 537

17.2.2  小结 537

17.3  Flex Weather开发环境的构筑 537

17.3.1  服务器端的环境构筑 537

17.3.2  客户端的环境构筑 538

17.3.3  小结 538

17.4  服务器端的功能设计和实现 538

17.4.1  服务器端的功能设计 538

17.4.2  服务器端的功能实现——网页代码的取得 538

17.4.3  服务器端的功能实现——网页代码的筛选和正则表达式的使用 542

17.4.4  小结 547

17.5  客户端的功能设计和实现 547

17.5.1  客户端的功能设计 547

17.5.2  客户端的功能实现 548

17.5.3  小结 552

17.6  Flex Weather的功能扩展 552

17.7  本章小结 553

目    录

目    录

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个