
本书循序渐进地介绍了Flex从基础知识到高级应用。书中的每一个章节都使用了实例来说明,并穿插了大量的说明、注意事项和操作技巧。本书共分为24章,分别介绍了Flex语言基础、交互设计、布局导航、行为样式、数据通信和框架设计等。本书难度适中,内容由浅入深;实用性强,立竿见影;覆盖面广,除了Flex基础、组件外,还包括了AIR平台、与各种服务器语言通信技术、PureMVC框架以及各种开源项目的介绍;条理清晰,从Flex基础开始,到Flex框架设计结束。
本书实例内容丰富,适合Flex开发的初级程序员,或者想了解Flex的程序开发人员,同时也可以作为想深入了解Flex开发的中、高级程序员的参考书,以及培训机构的教材使用。
前 言
Flex目前已经成为富互联网应用程序(RIA)的主要编程语言之一。如今,传统的互联网技术已经不能很好地满足用户的功能需求,RIA技术的发展已经成为了主流。在RIA技术中,Adobe公司的Flex以其特有的技术特点已经走在了前列。
Flex的第一个版本是在2004年由Macromedia公司发布的,接着又陆续发布了Flex开发工具Flex Builder。Flex最初是作为J2EE的一个应用,或者可以说是JSP标签库而发布的。Adobe并购Macromedia后,第一个被冠上Adobe商标而重命名的产品就是Flex。Adobe公司为了能使产品应用更加广泛,重新编写了ActionScript语言并发布了3.0版本。此后,Flex和ActionScript成为了开发RIA的重要语言之一。
为了方便广大读者学习,本人花费半年时间写作这本书。本书全面地介绍了Flex技术,并以实例介绍了Flex各种组件和相关技术。学完本书之后,力求让读者更多更深入地理解Flex技术并应用到实际的项目开发中。
本书特色介绍
1.提供多媒体语音视频讲解和交互式教学体验
笔者为本书录制了几百分钟的语音视频来进行讲解,同时还制作了交互式教学内容,读者可以在提示下进行各种Flex实战入门操作,以更快地掌握Flex。
2.提供完善的售后服务
本书学习论坛为http://www.wanjuanchina.net,读者可以讨论技术,笔者会及时回答提问,并提供各种技术文章,帮助读者提高开发水平。本书提供了服务邮箱fwflex@sina.com,读者购买本书后向该邮箱发一封邮件,即可获取各种Flex学习资料。
3.技术全面,内容充实
本书结合作者多年开发经验,详细分析了Flex技术和工具的特点及实际应用。书中除Flex基础知识外,还介绍了Flex相关开源项目,如AMFPHP、FluorineFx、BlazeDS等。
4.整理了常见问题,对重点代码进行标注
本书给出了学习中会遇到的常见问题,并对这些问题做了详细解答,避免读者少走弯路。同时,本书对重点代码编号讲解,以方便读者学习,能更好地掌握重点和难点。
本书体系结构及内容介绍
全书的内容主要分为8篇,包括以下内容。
第1篇为概述篇,包括第1~2章,主要对Flex的基础知识包括Flex的发展历史、语言特点和开发环境进行介绍。
第2篇为语言基础篇,包括第3~5章,主要介绍Flex的基础语言MXML和ActionScript,并讲解Flex的事件机制,包括事件的侦听和事件的类型等。
第3篇为交互设计篇,包括第6~10章的内容,主要讲解Flex的基础应用交互式设计、Flex中可视化控件的使用和设计。其中分别讲解文本设计、按钮设计、数据绑定、图标设计等,这些都是Flex构建界面的基础要素。
第4篇为布局和导航,包括第11~13章,主要介绍Flex的界面布局,其中包括各种布局容器的使用,还详细讲解了Flex导航的设计,涉及各种菜单的设计。
第5篇为行为和样式,包括第14~15章,主要介绍Flex外观设计,包括行为、样式和主题等。
第6篇为数据通信,包括第16~21章,主要介绍Flex与服务器端通信技术。其中讲解了HTTPService和Web Service技术,以及与各种服务器技术通信的方法。同时,这部分内容也涉及很多开源项目,如AMFPHP、FluorineFx、BlazeDS等。
第7篇为扩展篇,包括第22~23章,主要介绍Flex开发框架PureMVC。其中详细讲解了PureMVC每个部分的使用,同时也列举了实例说明。详细描述了如何使用Flex开发AIR平台,还包括AIR技术与本地数据库的应用。
第8篇为实例篇,包括第24章,重点讲解Flex的应用。本实例使用PureMVC作为基础框架,本篇对该框架的应用做了深入的讲解。
适合阅读本书的读者
* Flex初、中级开发人员;
* 其他编程语言的程序员;
* 网站开发和设计人员;
* 大中专院校的学生;
* 社会培训学生。
本书作者及编委会成员
本书由吕辉主笔编写。其他参与编写与资料整理的人员有班志杰、陈旭、陈永俊、陈争光、戴建华、方文票、冯玉荣、高姗姗、巩宁来、谷世江、胡其吐、黄飞龙、蒋晓捷、李德明、李显亮、李志勇、刘雁征、吕小波、马东、孟庆海、唐勇、王浩、王玲玉、王志娟、武娜、徐晓娟、闫树丰、杨朝宇、翟闯等。在此表示感谢!
本书编委会成员有欧振旭、陈杰、陈冠军、顼宇峰、张帆、陈刚、程彩红、毛红娟、聂庆亮、王志娟、武文娟、颜盟盟、姚志娟、尹继平、张昆、张薛。
编著者
??
??
??
??
前 言
·IV·
·III·
目 录
第1篇 概 述 篇
第1章 Flex概述 2
1.1 Flex简介 2
1.1.1 Flex是什么 2
1.1.2 Flex 运行机制 2
1.1.3 Flex产品组成 4
1.2 Flex和Flash的关系 4
1.3 Flex与其他技术比较 5
1.3.1 HTML/JavaScript/Ajax 5
1.3.2 Java/Java FX 5
1.3.3 Silverlight/XAML 5
1.4 常见问题及解答 6
1.5 小结 6
1.6 习题 6
第2章 Flex的开发环境 7
2.1 Flex SDK的安装 7
2.1.1 下载和安装Adobe Flex SDK 7
2.1.2 编译代码 8
2.2 开发工具Flex Builder 3 9
2.2.1 安装Flex Builder 3 9
2.2.2 Flex Builder 3的界面 10
2.3 构建第一个Flex应用程序 11
2.3.1 创建Flex项目 12
2.3.2 创建组件和编写代码 12
2.3.3 编译和运行应用程序 14
2.4 各种常见的文件类型 15
2.4.1 项目组件化 15
2.4.2 项目模块化 16
2.4.3 项目模式化 17
2.5 上机实践 17
2.6 常见问题及解答 17
2.7 小结 17
2.8 习题 18
第2篇 语言基础篇
第3章 MXML语法基础 20
3.1 MXML的构成 20
3.1.1 结构原理 20
3.1.2 书写规则 21
3.2 解析MXML的标签 21
3.3 命名空间 22
3.4 常见问题及解答 24
3.5 小结 24
3.6 习题 24
第4章 ActionScript 3.0 语法基础 25
4.1 变量和常量 25
4.1.1 变量的声明和赋值 25
4.1.2 变量的作用域 26
4.1.3 声明常量 27
4.2 数据类型 27
4.2.1 基本数据类型 28
4.2.2 复合数据类型 28
4.2.3 数据类型检查 29
4.2.4 is运算符 29
4.2.5 as运算符 30
4.3 语句 30
4.3.1 if…else 语句 30
4.3.2 if…else if 语句 31
4.3.3 switch语句 32
4.3.4 for语句 34
4.3.5 for…in语句 35
4.3.6 for each…in语句 35
4.3.7 while语句 36
4.3.8 do…while语句 37
4.4 函数 38
4.4.1 定义函数 38
4.4.2 函数的返回值 38
4.4.3 函数的作用域 39
4.4.4 值参数 39
4.4.5 引用参数 39
4.4.6 默认参数 40
4.4.7 arguments对象参数 40
4.4.8 …(rest) 参数 41
4.5 常见问题及解答 41
4.6 小结 41
4.7 习题 42
第5章 事件和事件机制 43
5.1 事件的概述 43
5.1.1 事件的侦听 43
5.1.2 Event类 44
5.2 定义事件 45
5.2.1 在MXML中定义事件 45
5.2.2 在ActionScript中定义事件 46
5.3 事件的类型 46
5.3.1 鼠标事件 46
5.3.2 键盘事件 48
5.3.3 时间事件 50
5.4 常见问题及解答 51
5.5 小结 51
5.6 习题 51
第3篇 交互设计篇
第6章 文本设计 54
6.1 文本的显示 54
6.1.1 使用Label控件显示文本 54
6.1.2 使用Text控件的text属性显示文本 55
6.1.3 使用Text控件的htmlText属性显示文本 55
6.2 单行文本框的设计 56
6.2.1 使用TextInput控件设计文本框 56
6.2.2 动态定义文本框的内容 57
6.2.3 动态创建文本框 59
6.3 多行文本的设计 60
6.3.1 使用TextArea控件显示多行文本 60
6.3.2 在多行文本框中显示HTML文本 61
6.4 文本编辑器的设计 62
6.4.1 使用RichTextEditor控件创建一个文本编辑器 62
6.4.2 添加和移除文本编辑器的工具栏内容 62
6.5 获取选择的文本 64
6.5.1 获取文本框中选择的文本 64
6.5.2 获取文本编辑器中选择的文本 66
6.6 本章实例:HTML文本编辑器 67
6.7 上机实践 72
6.8 常见问题及解答 73
6.9 小结 73
6.10 习题 73
第7章 按钮设计 74
7.1 普通按钮的设计 74
7.1.1 使用Button控件设计按钮 74
7.1.2 按钮中嵌入图片 75
7.1.3 设置按钮样式 75
7.1.4 按钮事件 76
7.2 单选按钮的设计 77
7.2.1 使用RadioButton控件设计单选按钮 78
7.2.2 使用单选按钮组 78
7.2.3 一个简单的加减法计算器 80
7.3 复选框的设计 82
7.3.1 使用CheckBox控件设计复选框 82
7.3.2 使用ActionScript控制复选框 83
7.3.3 动态创建复选框 84
7.4 弹出式按钮的设计 87
7.4.1 创建PopUpButton控件 87
7.4.2 获取弹出式按钮菜单的内容 88
7.5 链接按钮的设计 90
7.5.1 创建LinkButton控件 90
7.5.2 设置样式 92
7.6 本章实例:简易计算器 92
7.7 上机实践 95
7.8 常见问题及解答 95
7.9 小结 96
7.10 习题 96
第8章 数据绑定 97
8.1 数据列表 97
8.1.1 使用List控件创建数据列表 97
8.1.2 使用ActionScript在List控件中绑定数据 98
8.1.3 获取List控件的数据 100
8.1.4 在数据中嵌入图片 102
8.2 横向数据列表 103
8.2.1 使用HorizontalList控件 104
8.2.2 自定义ItemRenderer属性 105
8.3 二维数据列表 106
8.3.1 使用TileList控件 107
8.3.2 获取TileList控件中的数据 109
8.4 下拉列表 110
8.4.1 使用ComBox控件 111
8.4.2 获取下拉列表中的数据 112
8.5 数据网格 113
8.5.1 使用DataGrid控件 113
8.5.2 定义DataGrid控件的列 115
8.5.3 获取DataGrid控件的数据 116
8.5.4 DataGrid控件的排序 117
8.6 树形式的呈现方式 120
8.6.1 使用Tree控件 121
8.6.2 获取Tree控件的数据项 122
8.7 本章实例:商品列表 123
8.8 上机实践 124
8.9 常见问题及解答 124
8.10 小结 125
8.11 习题 125
第9章 图表设计 126
9.1 图表组件概述 126
9.1.1 关于数据图表 126
9.1.2 使用图表控件 126
9.1.3 定义数据源 130
9.2 图表类型 133
9.2.1 区域型图表 133
9.2.2 条型图表 135
9.2.3 泡沫型图表 137
9.2.4 烛台型图表 138
9.2.5 线型图表 139
9.2.6 圆饼型图表 141
9.2.7 混合型图表 143
9.3 格式化图表 144
9.3.1 创建样式 144
9.3.2 设置间隔大小 146
9.4 本章实例:股票分析系统 148
9.5 上机实践 150
9.6 常见问题及解答 151
9.7 小结 151
9.8 习题 151
第10章 其他交互设计 152
10.1 数字选择器 152
10.1.1 创建NumericStepper控件 152
10.1.2 设置NumericStepper控件 153
10.1.3 构建一个复合型的日期控件 153
10.2 日期显示 155
10.2.1 使用DateChooser控件实现日期选择 155
10.2.2 使用DateField控件实现日期选择 156
10.2.3 使用日期类 156
10.2.4 设置DateField控件的日期格式 158
10.2.5 设置DateChooser控件的中文显示 159
10.3 加载外部SWF文件 160
10.3.1 创建SWFLoader控件 160
10.3.2 与已加载的SWF文件交互 162
10.4 加载图像 168
10.4.1 创建Image控件 168
10.4.2 加载图像 169
10.5 颜色选择器 170
10.5.1 创建ColorPicker控件 170
10.5.2 自定义面板显示的颜色 171
10.5.3 自定义面板显示的标签 172
10.6 警告框的设计 173
10.6.1 创建警告框 173
10.6.2 警告框的事件 174
10.6.3 自定义警告框的按钮标签 175
10.6.4 设置提示框的文本大小 176
10.6.5 设置提示框的图标 177
10.7 进度条的设计 178
10.7.1 创建ProgressBar控件 178
10.7.2 设置进度条的标签 179
10.8 本章实例:日程管理 181
10.9 上机实践 184
10.10 常见问题及解答 184
10.11 小结 184
10.12 习题 184
第4篇 布局和导航
第11章 定位和布局 186
11.1 Canvas容器 186
11.2 使用Box布局容器 187
11.2.1 使用Box容器 187
11.2.2 使用HBox和VBox容器实现横向或纵向的布局 188
11.3 使用DividedBox容器布局 190
11.3.1 创建DividedBox容器 190
11.3.2 使用HDividedBox和VDividedBox容器实现可调控的布局 192
11.4 表单布局 195
11.4.1 创建表单 195
11.4.2 设置间隔 196
11.4.3 表单验证 197
11.5 网格定位 199
11.5.1 使用网格定位 199
11.5.2 网格容器之间的嵌套 200
11.6 Tile布局 201
11.6.1 使用Tile布局 201
11.6.2 设置Tile布局 202
11.7 使用面板 203
11.7.1 创建Panel容器 203
11.7.2 添加ControlBar控件 204
11.8 弹出窗口 205
11.8.1 创建TitleWindow容器 205
11.8.2 向弹出的窗口传递数据 206
11.9 本章实例:通讯录 208
11.10 上机实践 212
11.11 常见问题及解答 212
11.12 小结 213
11.13 习题 213
第12章 导航 214
12.1 ViewStack导航设计 214
12.1.1 创建ViewStack容器 214
12.2.2 实现不同子容器之间的传值 216
12.2 标签导航设计 218
12.2.1 使用TabNavigator导航容器 218
12.2.2 动态添加TAB标签 219
12.3 折叠导航设计 221
12.4 本章实例:名片管理系统 222
12.5 上机实践 226
12.6 常见问题及解答 226
12.7 小结 227
12.8 习题 227
第13章 菜单设计 228
13.1 上下文菜单的设计 228
13.1.1 使用Menu控件创建菜单 228
13.1.2 添加Menu控件菜单事件 230
13.2 菜单条的设计 232
13.2.1 使用MenuBar控件创建菜单 233
13.2.2 添加菜单条菜单事件 233
13.3 弹出式按钮菜单的设计 236
13.3.1 使用PopUpMenuButton控件创建菜单 236
13.3.2 添加弹出式按钮菜单事件 237
13.4 本章实例:多窗口文档编辑器 238
13.5 上机实践 240
13.6 常见问题及解答 240
13.7 小结 241
13.8 习题 241
第5篇 行为和样式
第14章 行为和特效 244
14.1 使用行为 244
14.1.1 行为简介 244
14.1.2 在ActionScript中使用行为 245
14.2 拖放行为特效 247
14.2.1 容器之间移动数据 247
14.2.2 容器之间复制数据 248
14.2.3 手动添加拖放功能 250
14.3 使用View States 251
14.3.1 使用View States改变局部视图 251
14.3.2 View States之间的继承关系 252
14.3.3 使用比较运算符 253
14.4 过渡特效Transitions 254
14.5 使用ToolTip 256
14.5.1 使用ToolTip属性 256
14.5.2 设置ToolTip样式 256
14.5.3 使用ToolTip管理器 257
14.5.4 创建一个自定义的ToolTip 258
14.6 本章实例:用户登录系统 259
14.7 上机实践 260
14.8 常见问题及解答 261
14.9 小结 261
14.10 习题 261
第15章 样式和主题 262
15.1 使用样式 262
15.1.1 使用Style组件定义样式 262
15.1.2 使用StyleManager类定义样式 263
15.1.3 外部样式表 264
15.2 使用字体 265
15.2.1 使用系统字体 265
15.2.2 使用嵌入式字体 266
15.3 指针管理器 267
15.4 本章实例:使用Flex主题 269
15.5 上机实践 271
15.6 常见问题及解答 271
15.7 小结 271
15.8 习题 271
第6篇 数 据 通 信
第16章 HTTPService和Web Service 274
16.1 使用HTTPService 274
16.1.1 读取数据 274
16.1.2 提交数据 276
16.2 使用Web Service 279
16.2.1 使用MXML代码访问Web服务 279
16.2.2 使用ActionScript访问Web服务 283
16.3 本章实例:在线翻译 284
16.4 上机实践 287
16.5 常见问题及解答 288
16.6 小结 288
16.7 习题 288
第17章 Flex Ajax桥 289
17.1 Ajax简介 289
17.1.1 Ajax的定义 289
17.1.2 Ajax的使用 289
17.1.3 与传统的Web应用比较 290
17.1.4 发展史 290
17.1.5 优点和缺点 291
17.1.6 Ajax的工作原理 291
17.2 使用FABridge 292
17.2.1 FABridge简介 292
17.2.2 使用FABridge 292
17.3 本章实例:相册 295
17.4 上机实践 296
17.5 常见问题及解答 297
17.6 小结 297
17.7 习题 297
第18章 Flex与ColdFusion 298
18.1 ColdFusion简介 298
18.2 使用ColdFusion 298
18.2.1 安装ColdFusion 299
18.2.2 创建第一个Flex和ColdFusion通信程序 303
18.3 本章实例:留言本(ColdFusion版) 306
18.4 上机实践 309
18.5 常见问题及解答 309
18.6 小结 309
18.7 习题 310
第19章 Flex与PHP 311
19.1 PHP简介 311
19.1.1 PHP脚本语言 311
19.1.2 使用PHP 311
19.2 使用AMFPHP 312
19.2.1 AMFPHP简介 312
19.2.2 访问PHP应用程序 313
19.3 本章实例:留言本(PHP版) 315
19.4 上机实践 319
19.5 常见问题及解答 320
19.6 小结 320
19.7 习题 320
第20章 Flex与.NET 321
20.1 .NET简介 321
20.1.1 .NET框架 321
20.1.2 ASP.NET应用程序 321
20.2 使用FluorineFX 323
20.2.1 安装FluorineFx 323
20.2.2 使用FluorineFx创建应用程序 325
20.3 本章实例:留言本(.NET版) 329
20.4 上机实践 330
20.5 常见问题及解答 331
20.6 小结 331
20.7 习题 331
第21章 Flex与Java 332
21.1 Java简介 332
21.1.1 Java语言 332
21.1.2 Java语言的特点 333
21.2 开源项目BlazeDS 334
21.2.1 安装和配置BlazeDS 334
21.2.2 使用BlazeDS 335
21.3 本章实例:留言本(Java版) 339
21.4 上机实践 339
21.5 常见问题及解答 340
21.6 小结 340
21.7 习题 340
第7篇 扩 展 篇
第22章 PureMVC框架 342
22.1 PureMVC模式简介 342
22.1.1 MVC模式 342
22.1.2 PureMVC结构 343
22.2 控制中心--Facade类 343
22.2.1 Facade类 344
22.2.2 创建Facade子类 344
22.3 通信机制 346
22.3.1 通信机制概述 346
22.3.2 事件(Event)处理 346
22.4 逻辑命令处理--Command类 347
22.4.1 Command类 347
22.4.2 创建Command子类 347
22.5 视图控制--Mediator类 351
22.5.1 Mediator类 351
22.5.2 创建Mediator子类 351
22.6 数据模型代理--Proxy类 357
22.6.1 Proxy类 358
22.6.2 创建Proxy子类 358
22.7 本章实例:用户角色管理 362
22.8 上机实践 376
22.9 常见问题及解答 376
22.10 小结 376
22.11 习题 377
第23章 创建AIR程序 378
23.1 AIR简介 378
23.1.1 AIR平台概述 378
23.1.2 使用Flex创建第一个AIR程序 378
23.2 窗体 379
23.2.1 窗体简介 380
23.2.2 窗体事件 380
23.3 菜单 382
23.3.1 系统菜单 382
23.3.2 右键菜单 384
23.3.3 托盘菜单 385
23.4 本地SQL数据库 386
23.4.1 创建和打开数据库 386
23.4.2 创建数据表 388
23.4.3 插入数据 389
23.4.4 读取数据 391
23.5 本章实例:RSS阅读器 392
23.6 上机实践 393
23.7 常见问题及解答 394
23.8 小结 394
23.9 习题 395
第8篇 实 例 篇
第24章 使用Flex创建MP3播放器 398
24.1 总体和界面设计 398
24.1.1 总体功能设计 398
24.1.2 总体框架设计 399
24.1.3 播放进度设计 401
24.1.4 播放控制界面设计 402
24.1.5 歌曲列表设计 402
24.2 歌曲列表功能设计 403
24.2.1 创建数据和对象模型 403
24.2.2 读取歌曲列表 405
24.2.3 显示歌曲列表 406
24.3 播放控制功能设计 408
24.3.1 播放控制 408
24.3.2 暂停控制 410
24.3.3 停止控制 412
24.3.4 歌曲切换 414
24.4 显示进度功能设计 416
24.5 音量控制功能设计 417
24.5.1 音量控制 417
24.5.2 静音控制 419
24.6 小结 419
??
??
??
??
·XVI·
·XVII·