标题：Flex4.0RIA开发宝典
图书基本信息
书名：Flex 4.0 RIA开发宝典
作者：赵一飞  主编  沈大伟  苗峰  杨旺功 编著
ISBN 978-7-121-12624-6
出版日期：2011年1月 
定价：59.00元
宣传语
从零起步，循循善诱的良师益友
全面系统，打牢基础的必备教材
实例丰富，实战性强的编程宝典
素材代码，厚积薄发的经典资源
内 容 简 介
RIA——“富互联网应用”技术是目前及今后互联网发展不可逆转的方向和趋势，Flex又是最为流行的RIA开发技术之一。本书分为几个部分，从零起步，深入浅出，结合大量实例详细介绍Flex 4.0的基本概念、语法、新特性及Flex的开发工具等。ActionScript语法作为开发Flex项目的基础，学习它是学习Flex开发的前提和重要基石，书中对ActionScript 3.0语法进行了系统的讲解。最后的两个使用Flex技术开发企业级项目的实例，可使读者对Flex的实践和应用有更深的认识，具有很高的学习和参考价值。
本书由多年从事Flash和Flex开发的技术人员和教学人员共同编写，适合Flex程序员、RIA爱好者、各大专院校相关专业学生和具有一定编程经验的交互媒体设计师等读者阅读参考。
前  言
随着计算机网络的高速发展，互联网对人们的学习、工作、生活、娱乐等方方面面都产生了不可逆转的影响。随着这种发展，人们对互联网的各种应用需求也在不断增加，传统的HTML网页客户端已经远远不能满足网络受众的这种需求。这时候就需要一种新技术的出现，它既能够像用传统Web开发一样简单的方式来部署客户端程序，又能够满足网络受众对跨平台性、实时性及更为丰富的交互方式和用户体验等的需求，甚至还可以满足企业级用户对Web应用的各种要求等。
由此，RIA（Rich Internet Applications，富互联网应用技术）兴起，它是顺应了互联网时代发展需求的新兴技术。作为以Flash为前身和基石的Flex技术，已经在众多RIA技术中脱颖而出，成为当前最为流行和最为成熟的RIA开发技术之一。
本书主要以Flex 4.0为基础，介绍了Flex 4.0的新特性和应用，通过大量的实例对Flex开发技术进行详解。本书由多年从事Flash和Flex开发的技术人员和教学人员共同编写，既可作为系统学习的教材使用，又可作为Flex技术人员实际开发的参考用书。本书适合Flex程序员、RIA爱好者、各大专院校相关专业的学生和具有一定编程经验的交互媒体设计师等读者阅读参考。
本书主要特点有以下这些。
从零起步、深入浅出。本书由RIA和Flex的概念到Flex与Flash的联系和区别讲起，从零起步介绍Flex的开发环境——Adobe Flash Builder 4，在实践篇中又对开发“第一个Flex程序”进行详细讲解，手把手带领读者从概念理解到实际操作，快速认识Flex技术和开发环境，并初步掌握简单程序开发的整个流程。
全面系统、夯实基础。对于Flex的开发基础——ActionScript 3.0无疑是Flex这座高楼大厦的重要基石，不能够熟练掌握ActionScript 3.0的语法和用法，使用Flex开发RIA程序便无从谈起。本书中的第二部分专门针对ActionScript 3.0语法基础进行系统讲解，从基本语法到程序结构，从程序中的函数到面向对象编程的重要思想等，充分系统地进行了详细介绍，厚积薄发、夯实基础。
实例丰富、实践性强。本书实践篇中的每一章都是一个完整的相对独立的实践案例应用，这些实例应用是作者们在多年从事和研究Flash/Flex项目开发中总结和完善的经典案例。读者通过每一个实例的学习，既能够开阔思路，举一反三，又能够对实例中涉及的相应语法内容有更深的理解和认识。
企业项目、灵活应用。在企业级项目实践篇中，分为“Flex开发企业局域网应用实例解析”和“利用Flex和PHP创建网站视频发布系统”两章，这两章都是使用Flex进行企业级开发的案例和实践应用，是Flex项目开发的高级应用，读者通过对这部分的学习，可以了解和掌握使用Flex开发大中型应用程序的方法和思路。
本书主要由北京印刷学院赵一飞、杨旺功策划和统筹编写，苗峰、沈大伟参与编写。其他参与编写的人员还有刘涛、王斐、孙丽娜、颜世琼、徐锡龙、宋美丽、曲美霖、牟文静、任远杭、彭姗姗、陈晓丹等。感谢电子工业出版社的策划编辑张月萍、责任编辑董英所给予的大量指导和宝贵建议；感谢网页顽主（站长刘涛（froglt）为本书的出版提供的大力支持；感谢每一位读者；特别感谢所有为本书付出努力的同事和朋友们！
由于作者水平有限、编写时间紧张和篇幅所限等原因，本书中对于Flex开发技术的全面、系统的讲述难免会有遗漏和不严谨的地方，还希望读者能够海涵并及时指出，以便我们进行更正，也随时欢迎所有的读者朋友与我们对于RIA开发技术和发展趋势进行交流和探讨！在线交流。
本书中全部实例的工程源代码，可到网站下载，读者可以方便地进行学习参考、运行测试，掌握开发技巧，提高编程能力。
目  录
第1部分  Flex基础篇    1
第1章  Flex技术概述    2
1.1  Flex简介    2
1.1.1  Flex的技术特点    3
1.1.2  Flex 4.0的新特性    5
1.2  Flex技术框架概述    7
1.2.1  MXML语言    7
1.2.2  ActionScript语言    7
1.2.3  Flex类库    7
1.3  Flex与Flash    8
1.3.1  Flex与Flash的联系    8
1.3.2  Flex与Flash的区别    8
1.4  Flex与Ajax    9
1.5  Flex的三种通信方式    9
1.6  小结    10
第2章  熟悉Flash Builder 4 开发环境    11
2.1  创建开发环境    11
2.1.1  对系统硬件的要求    11
2.1.2  对软件环境的要求    11
2.1.3  安装Flash Builder 4    12
2.2  创建开发环境    15
2.2.1  Flex 4.0 项目工程概述    15
2.2.2  熟悉Flash Builder 4 工作区    15
2.2.3  Flash Builder 4 常用的快捷键    17
2.2.4  使用Flex帮助    17
2.3  使用Flash Builder 4    18
2.3.1  创建Flex项目    18
2.3.2  编写Flex 4.0程序    19
2.3.3  编译和运行Flex 4.0程序    21
2.4  小结    22
第2部分  ActionScript语法篇    23
第3章  ActionScript 3.0语法基础    24
3.1  变量的声明和使用    24
3.1.1  变量的本质    24
3.1.2  变量命名规则    24
3.1.3  声明变量的语法    25
3.1.4  变量的作用域    25
3.2  常量的声明和使用    27
3.3  保留字与关键字    28
3.4  数据类型    29
3.4.1  数字：Numeric（Number、int、uint）    29
3.4.2  字符串：String    30
3.4.3  布尔值：Boolean    31
3.4.4  Null、void    31
3.4.5  复杂的数据类型：Object、MovieClip、SimpleButton、TextField、Date、Array、Error、Function和XML    31
3.4.6  数据类型转换（隐式转换、显式转换）    32
3.4.7  转换为int、uint 和 Number、String、Boolean    33
3.4.8  默认值    36
3.5  运算符及表达式    36
3.5.1  算术运算符    37
3.5.2  赋值运算符    37
3.5.3  关系运算符    37
3.5.4  逻辑运算符    38
3.5.5  字符串运算符    38
3.5.6  条件运算符    39
3.5.7  主要运算符    39
3.5.8  按位运算符    39
3.5.9  递增、递减运算符    40
3.5.10 数据类型检查（is、as、typeof、in、instanceof）    41
3.5.11 其他运算符    43
3.5.12 一元、二元、三元运算符    43
3.5.13 运算符的优先级和结合律    44
3.6  代码书写规则    45
3.6.1  点语法与斜杠语法    45
3.6.2  区分大小写    46
3.6.3  冒号    46
3.6.4  小括号    46
3.6.5  中括号    46
3.6.6  大括号    47
3.6.7  分号    48
3.6.8  字面值    48
3.6.9  注释    49
3.7  外部文件路径    49
3.8  本章小结    49
第4章  ActionScript 3.0 程序结构    51
4.1  顺序结构    51
4.2  分支结构    51
4.3  循环结构    53
4.4  小结    56
第5章  常用ActionScript 3.0 核心类概览    57
5.1  数学（Math）类    57
5.1.1  数学（math）类的属性和方法    57
5.1.2  数学（Math）类应用实例——轨迹星球    59
5.2  数组（Array）类    61
5.2.1  创建数组    61
5.2.2  访问数组元素    62
5.2.3  数组的长度    63
5.2.4  多维数组    63
5.2.5  数组的基本操作    64
5.2.6  遍历数组元素    65
5.2.7  数组（Array）类应用实例——排序    67
5.3  字符串（String）类    68
5.3.1 创建字符串    69
5.3.2  字符串属性    70
5.3.3  字符串方法    71
5.3.4  字符串（String）类应用实例——查找字符串    72
5.4  日期（Date）类和时间（Timer）类    73
5.4.1  创建Date对象    73
5.4.2  获取日期和时间单位值    74
5.4.3  日期（Date）类应用实例——电子表    78
5.5  本章小结    80
第6章  正则表达式    81
6.1  正则表达式基础知识    81
6.2  正则表达式的标志及属性    81
6.3  字符、元字符、元序列、字符类    83
6.3.1  正则表达式中的字符    83
6.3.2  元字符    83
6.3.3  元序列    84
6.3.4 字符类    87
6.4  常用的正则表达式    88
6.4.1  文本处理和输入限制常用正则表达式    88
6.4.2  网络和HTML代码方面常用正则表达式    89
6.4.3  表单验证常用正则表达式    90
6.4.4  匹配数字常用正则表达式    90
6.5  小结    91
第7章  函数    92
7.1  函数概述    92
7.1.1  函数理解    92
7.1.2  函数分类    93
7.2  函数定义    93
7.2.1  函数语句定义方法    93
7.2.2  函数表达式定义法    94
7.2.3  两种定义法的区别和选择    94
7.3  传递参数    95
7.3.1  形参与实参    95
7.3.2  无参函数    95
7.3.3  给参数传递值和引用    96
7.3.4  使用arguments属性    97
7.3.5  参数（rest）    98
7.4  调用函数    99
7.4.1  函数的调用形式    99
7.4.2  函数调用的方式    100
7.5  函数返回值    100
7.6  理解作用域    102
7.6.1  变量的作用域    102
7.6.2  函数的作用域    103
7.7  创建递归    103
7.8  重载函数    104
7.9  为可重用而编写函数    104
7.10 使用内置函数    105
7.11 创建间隔函数    106
7.12 小结    107
第8章  ActionScript 3.0面向对象编程    108
8.1  面向对象编程基础    108
8.1.1  ActionScript 1.0对OOP的支持    108
8.1.2  ActionScript 2.0对OOP的支持    110
8.1.3  ActionScript 3.0对OOP的支持    111
8.2  类    111
8.2.1  类定义    111
8.2.2  类成员的访问控制    113
8.2.3  变量    115
8.2.4  方法    116
8.2.5  类的枚举    121
8.2.6  嵌入资源类    123
8.3  接口    123
8.4  继承    126
8.5  小结    133
第9章  处理显示对象    134
9.1  显示对象常识    134
9.1.1  显示列表    134
9.1.2  重要概念和术语    135
9.2  显示对象类的子类关系与选择    136
9.2.1  显示对象类的类继承    136
9.2.2  选择 DisplayObject 子类    138
9.3  ActionScript 3.0显示列表层次结构的优越性    138
9.4  显示对象类的属性和方法    139
9.4.1  显示对象类的属性    140
9.4.2  显示对象类的方法    140
9.5  管理显示对象容器    141
9.5.1  显示对象容器的方法    141
9.5.2  添加视觉元件    142
9.5.3  删除视觉元件    143
9.6  遍历显示列表    144
9.6.1  遍历容器的子显示对象    145
9.6.2  通过深度访问子显示对象    145
9.6.3  通过name访问显示对象    146
9.6.4  通过坐标访问显示对象    146
9.7  深度管理    147
9.7.1  深度顺序的产生    147
9.7.2  交换不同深度的对象    147
9.7.3  重设子对象的深度    149
9.8  处理显示对象外观    149
9.8.1  改变位置    149
9.8.2  调整颜色    150
9.8.3  处理大小和比例    152
9.8.4  透明度    154
9.9  遮罩显示对象    154
9.9.1  定义遮罩    154
9.9.2  Alpha 遮罩    155
9.9.3  遮罩设备字体    155
9.10  小结    155
第10章  异常和错误的捕获与处理    156
10.1  异常和错误基础知识    156
10.2  使用try…catch…finally处理异常    157
10.3  使用throw语句抛出异常    159
10.4  自定义异常    159
10.5  ActionScript 3.0 中对异常的层次和结构    161
10.6  处理异常的原则和方式    162
10.6.1  三大提倡    162
16.6.2  三大忌讳    162
10.7  对异常事件的处理    163
10.8  小结    164
第3部分  Flex进阶篇    165
第11章  Flex可视化组件基础    166
11.1  Flex组件概述    166
11.2  可视化组件的类结构    166
11.2.1  可视化组件都继承类    166
11.2.2  DisplayObject和DisplayObjectContainer    167
11.2.3  用Sprite创建用户接口组件    167
11.3  Flex组件生命周期    167
11.4  Flex可见组件    169
11.4.1  可见组件的分类    169
11.4.2  使用可见组件构建界面    169
11.4.3  使用Flex非可见组件    171
11.5  Libray和Definition标签    172
11.5.1  Library标签    173
11.5.2  Private标签    173
11.6  小结    174
第12章  Flex常用组件概览    175
12.1  控制组件    175
12.2  文本组件    183
12.3  菜单组件    187
12.4  数据容器组件    190
12.5  小结    203
第13章  Flex 程序设计进阶    205
13.1  可视化组件行为控制    205
13.1.1  Flex行为控制概述    205
13.1.2  在MXML中使用行为控制    207
13.1.3  在ActionScript中使用行为控制    208
13.1.4  可视化组件效果控制    211
13.2  视图模式与视图转换    214
13.2.1  视图模式    214
13.2.2  创建和应用视图模式    215
13.2.3  视图模式与历史记录管理器    216
13.2.4  详解Transitions的使用    218
13.2.5  效果过滤器    220
13.3  小结    223
第14章  Flex模块化编程    224
14.1  Flex模块化编程概述    224
14.1.1  模块化软件开发    224
14.1.2  Flex模块架构    225
14.2  Flex 模块的创建与使用    225
14.2.1  使用MXML创建模块    225
14.2.2  使用ActionScript创建模块    226
14.3  数据传输    227
14.3.1  应用程序与模块之间的数据传输    227
14.3.2  模块之间的数据传输    230
14.4  小结    231
第15章  图表组件    232
15.1  图表组件开发基础——图表数据    232
15.2  图表组件常用属性    238
15.2.1  Axis 标签    238
15.2.2  Axis标题    241
15.2.3  Axis Renderer    241
15.2.4  Axis 类型    244
15.2.5  minField属性    245
15.3  图表事件    246
15.4  复合坐标轴    248
15.5  图表组件效果    249
15.6  小结    250
第4部分  Flex实践篇    251
第16章  第一个Flex程序    252
16.1  Flash Builder的下载和安装    252
16.2  Flex基础结构MXML介绍    254
16.3  建立第一个Flex 4.0程序——“Hello World”    261
16.4  编译和运行第一个Flex 4.0程序    262
16.5  小结    263
第17章  使用多种方法创建应用程序    264
17.1  使用Flash创建应用程序    265
17.2  使用独立的外部AS文件创建应用程序    266
17.3  使用Flash Builder 4 创建应用程序    268
17.4  小结    270
第18章  ActionScript 3.0程序结构应用实例    271
18.1  使用分支结构语句创建“递增的圆环”实例    271
18.2  使用多项分支结构语句创建“星期显示”实例    272
18.3  使用循环结构语句创建“随机气泡”和“随机彩带”实例    273
18.4  使用结构嵌套实现“乘法表”实例    275
18.5  使用with语句制作“福到了”实例    276
18.6  小结    277
第19章  Math类应用实例    278
19.1  Math方法和属性    278
19.2  计算两点之间的距离    279
19.3  绘制椭圆    282
19.4  使用正弦、余弦    285
19.5  设计弹性运动    287
19.6  小结    292
第20章  Array类应用实例    293
20.1  使用数组顺序浏览图像实例    293
20.2  使用数组随机显示图像实例    294
20.3  使用数组显示图像及相关信息实例    295
20.4  遍历数组元素示例    297
20.4.1  forEach示例    297
20.4.2  every示例    297
20.4.3  filter示例    298
20.4.4  map示例    298
20.4.5  some示例    299
20.5  小结    299
第21章  String类应用实例    300
21.1  使用字符串方法分割字符串    300
21.2  使用字符串方法查找字符串    301
21.3  使用字符串方法制作“打字效果”实例    301
21.4  使用字符串方法制作“逐字逐句”实例    303
21.5  小结    304
第22章  Date类和Timer类应用实例    305
22.1  设计一个数字式电子表    305
22.2  设计一个指针式盘表    307
22.3  制作一个秒表计时器    313
22.4  小结    316
第23章  正则表达式应用实例    317
23.1  在TextInput及TextArea控件上使用Validator 和Formatter    317
23.2  创建一个自定义的Formatter    319
23.3  使用正则表达式创建国际化邮政编码Validator    320
23.4  如何在一个表单内通过ToolTips来返映一个错误    323
23.5  小结    326
第24章  函数应用实例    327
24.1  函数的基本概念    327
24.2  “粒子瓶”实例    327
24.3  “紧盯肉虫的小鸟”实例    330
24.4  小结    331
第25章  显示对象应用实例    332
25.1  使用显示对象类方法制作实例    332
25.2  通过管理显示对象容器制作实例    334
25.3  通过坐标访问显示对象制作实例    337
25.4  使用深度管理制作实例    338
25.5  处理显示对象外观    339
25.6  小结    344
第26章  XML相关应用实例    345
26.1  XML基础    345
26.1.1  XML文件示例    345
26.1.2  重要概念和术语    346
26.1.3  XML语法    346
26.1.4  XML元素    348
26.1.5  XML属性    349
26.1.6  XML注释    350
26.2  E4X处理XML数据实例    351
26.3  创建内部XML文档实例    352
26.4  加载外部XML文档实例    354
26.5  访问XML对象实例    356
26.6  添加节点实例    361
26.7  删除节点实例    362
26.8  遍历节点实例    364
26.9  XML对象的字符串转化实例    366
26.10 小结    367
第27章  网络与通信    368
27.1  网络与通信介绍    368
27.1.1  网络基础知识    368
27.1.2  与网络通信相关的类    369
27.1.3  重要概念和术语    370
27.2  套接字连接    370
27.2.1  Socket 类    371
27.2.2  XMLSocket 类    372
27.3  创建套接字程序    374
27.3.1  建立连接    374
27.3.2  发送数据    377
27.3.3  读取数据    379
27.3.4  连接断开    381
27.3.5  处理错误    382
27.4  小结    386
第28章  控制组件操作实践    387
28.1  Button类组件实践    387
28.2  Bar类组件实践    389
28.3  数据处理类组件实践    391
28.4  多媒体处理类    394
28.5  快捷交互类组件实践    395
28.6  辅助类组件实践    396
28.7  “交互式信息管理系统”综合实例    397
28.8  小结    399
第29章  文本组件操作实践    400
29.1  文本组件的基本应用    400
29.2  Label 和 Text 组件实践    403
29.3  TextInput和TextArea组件    405
29.4  RichTextEditor组件    406
29.5  “电子信息公告板”综合实例    408
29.6  小结    417
第30章  数据容器类组件操作实践    418
30.1  简介数据访问机制    418
30.2  数据组件概述    419
30.3  Flex数据组件    420
30.3.1  List组件    420
30.3.2  HorizontalList组件    423
30.3.3  Tree组件    425
30.3.4  DataGrid组件    427
30.3.5  ComboBox组件    428
30.4  数据组件应用示例    429
30.5  小结    431
第31章  布局控制与布局组件操作实践    432
31.1  Canvas界面布局    432
31.2  Vbox或者Hbox 布局    434
31.3  ControlBar layout 容器    435
31.4  ApplicationControlBar 容器    436
31.5  DividedBox、 HDividedBox 和VDividedBox 布局    437
31.6  Form容器    439
31.7  Grid布局    440
31.8  Panel 容器    442
31.9  TitelWindow容器    443
31.10  Title layout 容器    443
31.11 小结    444
第5部分  Flex企业级项目篇    445
第32章  Flex开发企业局域网应用实例解析    446
32.1  实例工程设置    446
32.1.1  安装ColdFusion 9    446
32.1.2  在Flash Builder 4.0中设置实例工程    447
32.2  Spark Intranet Sample App应用    447
32.2.1  Main.mxml    447
32.2.2  NewsView.mxml    451
32.2.3  ExpandedNewsView.mxml    452
32.2.4  TimeSheetView.mxml    455
32.3  数据/服务视图、测试选项视图和Getter/Setter方法自动生成    460
32.3.1  使用CFC    460
32.3.2  测试选项视图    461
32.3.3  Getter/Setter方法自动生成    462
32.4  使用网络监视器    462
32.5  小结    462
第33章  利用Flex和PHP创建网站视频发布系统    463
33.1  视频发布系统概述    463
33.2  使用HTTPService标签    463
33.3  显示数据    465
33.4  创建PHP后台    465
33.5  创建上传页面    466
33.6  创建 HTML/Flash 界面    468
33.7  Flex界面，第一部分    470
33.8  Flex 界面，第二部分——添加了缩略图    473
33.9  存储和带宽    474
33.10 总结    475