标题：Flex从入门到精通
版权信息
书 名: Flex从入门到精通
  作　者：聂晓霞
出版社： 清华大学出版社
出版时间： 2008
ISBN: 9787302183051
开本： 16
定价: 59.80 元
编辑推荐
《Flex从入门到精通》适合于广大的网站开发人员、Flex技术初学者及大专院校的学生，也可供网页制作爱好者及社会培训学员参考学习。
目录
第1篇Flex3.0基础篇
第1章Flex概述3
1.1RIA概述4
1.2Flex概观4
1.2.1Flex应用技术4
1.2.2Flex组成元素6
1.2.3Flex技术与传统网页技术的对比7
1.2.4Flex的工作原理8
第2章FlexBuilder介绍11
2.1配置FlexBuilder开发环境12
2.1.1下载并安装FlexBuilder312
2.1.2运行FlexBuilder314
2.2FlexBuilder简介14
2.3FlexBuilder模式（perspective）15
2.3.1FlexBuilder开发模式中的代码视图15
2.3.2FlexBuilder中的代码提示帮助16
2.3.3FlexBuilder开发模式中的设计视图17
2.3.4FlexBuilder调试（Debug）模式18
2.3.5编译应用程序20
2.3.6运行和调试应用程序21
2.3.7其他信息21
2.4学习使用文本编辑器（Editor）21
2.5学习建立第一个应用程序“HelloWorld！”22
2.5.1建立第一个应用程序“HelloWorld！”22
2.5.2FlexBuilder的生成文件26
第2篇Flex编程基础
第3章MXML编程29
3.1MXML概述30
3.1.1使用MXML的好处30
3.1.2一个简单的MXML应用程序30
3.2MXML标签和ActionScript类之间的相互关系31
3.3MXML基本语法31
3.3.1MXML文件名31
3.3.2设置组件的属性31
3.3.3使用常数来设置组件的属性值32
3.3.4使用斜线“\”来定义字符串属性值32
3.3.5设定样式属性33
3.3.6定义URL值33
3.3.7使用编译标签33
3.3.8MXML标签规则34
3.4MXML与其他相关的标准34
第4章ActionScript编程37
4.1ActionScript3.0概观38
4.2ActionScript语言特点38
4.2.1字母（Literals）38
4.2.2分号（;）39
4.2.3括号（()）39
4.2.4注解（Comments）39
4.2.5关键词和保留词（reservedwords）39
4.2.6大小写敏感40
4.2.7点（.）40
4.3变量41
4.3.1了解变量作用范围41
4.3.2变量默认值42
4.3.3常量（Constants）42
4.3.4数组43
4.4数据类型43
4.4.1类型检查43
4.4.2is操作符44
4.4.3as操作符44
4.4.4类型转换44
4.5语法：操作符（Operators）45
4.5.1操作符的优先权（precedence）和关联（associativity）46
4.5.2原始操作符47
4.5.3后缀操作符47
4.5.4一元操作符47
4.5.5乘法操作符48
4.5.6加法操作符48
4.5.7位移操作符48
4.5.8关系操作符49
4.5.9等式操作符49
4.5.10位操作符49
4.5.11逻辑操作符50
4.5.12条件操作符50
4.5.13赋值操作符50
4.6ActionScript语句51
4.6.1条件语句（Conditionals）51
4.6.2循环语句（Looping）53
4.7函数（Functions）55
4.7.1引用函数55
4.7.2函数声明55
4.7.3函数文字55
4.7.4函数返回值56
4.7.5嵌套的函数56
4.7.6函数的参数57
4.8对象和类57
4.9包和命名空间58
4.9.1文件包58
4.9.2建立文件包59
4.9.3输入文件包59
4.9.4命名空间59
4.10如何在Flex中应用ActionScript60
4.10.1在MXML文件中使用ActionScript代码60
4.10.2包含（inculding）ActionScript代码和输入（importing）ActionScript代码61
4.10.3在ActionScript代码中引用Flex组件61
4.11创建ActionScript组件62
第5章Flex组件（Components）63
5.1组件简介64
5.1.1组件的特点64
5.1.2组件的类继承64
5.1.3在MXML和ActionScript中使用组件65
5.2组件的大小（SizingComponents）65
5.2.1定义组件大小的方式65
5.2.2如何使用组件默认值66
5.2.3设置组件绝对值大小66
5.2.4设置组件相对值大小67
5.2.5使用约束布局定义组件大小67
5.3组件的定位（PositioningComponents）68
5.3.1使用自动定位68
5.3.2使用绝对值定位69
5.3.3使用约束布局定位70
第6章Flex控件（Controls）71
6.1控件简介（Controls）72
6.1.1直接控件拖放72
6.1.2书写代码72
6.1.3实例演示73
6.1.4控件的分类76
6.1.5定义控件大小（SizingControls）77
6.1.6控件定位（PositioningControls）79
6.2按钮控件（ButtonControl）79
6.2.1基本按钮控件概述80
6.2.2建立一个按钮控件示例80
6.2.3改变按钮外观82
6.3弹出按钮控件（PopUpButtonControl）83
6.3.1弹出按钮控件概述84
6.3.2建立一个弹出按钮控件示例84
6.4按钮条和开关按钮条控件（ButtonBar
andToggleButtonBarControls）86
6.4.1按钮条和开关按钮条控件概述87
6.4.2建立一个按钮条控件示例87
6.4.3建立一个开关按钮条控件示例89
6.5复选框控件（CheckBoxControl）90
6.5.1复选框控件概述90
6.5.2建立一个复选框控件示例91
6.6单选按钮控件（RadioButtonControl）93
6.6.1单选按钮控件概述93
6.6.2建立一个单选按钮控件示例93
6.7链接按钮控件（LinkButtonControl）95
6.7.1链接按钮控件概述95
6.7.2建立一个链接按钮控件95
6.8链接条控件（LinkBarControl）97
6.8.1链接条控件概述97
6.8.2建立一个链接条控件示例97
6.9标签条控件（TabBarControl）99
6.9.1标签条控件概述99
6.9.2建立一个标签条控件100
6.10进度条控件（ProgressBarControl）101
6.10.1进度条控件概述101
6.10.2进度条控件模式101
6.10.3建立一个进度条控件102
6.11滚动条控件（ScrollBarControl）103
6.11.1滚动条控件概述104
6.11.2建立一个垂直滚动条控件示例104
6.12水平滑杆和垂直滑杆控件（HSliderandVSliderControl）106
6.12.1水平滑杆和垂直滑杆控件概述106
6.12.2建立一个水平滑杆示例107
6.13水平尺和垂直尺控件（HRuleandVRuleControl）108
6.13.1水平尺和垂直尺控件概述108
6.13.2建立一个水平尺和垂直尺控件示例109
6.14标签控件（LabelControl）110
6.14.1标签控件概述110
6.14.2建立一个标签控件示例111
6.15文本条控件（TextInputControl）111
6.15.1文本条控件概述111
6.15.2建立一个文本条控件示例112
6.16文本控件（TextControl）113
6.16.1文本控件概述113
6.16.2建立一个文本控件示例113
6.17文本区域控件（TextAreaControl）114
6.17.1文本区域控件概述115
6.17.2建立一个文本区域控件示例115
6.18富文本编辑器控件（RichTextEditorControl）116
6.18.1富文本编辑器控件概述116
6.18.2建立一个富文本编辑器控件示例117
6.19菜单控件（MenuControl）118
6.19.1菜单控件概述118
6.19.2建立一个菜单控件示例119
6.20菜单条控件（MenuBarControl）121
6.20.1菜单条控件概述121
6.20.2建立一个菜单条控件示例122
6.21弹出菜单按钮控件（PopUpMenuButtonControl）123
6.21.1弹出菜单按钮控件概述123
6.21.2建立一个弹出菜单按钮控件示例123
6.22列表控件（ListControl）125
6.22.1列表控件概述125
6.22.2建立一个列表控件示例126
6.23水平列表控件（HorizontalListControl）129
6.23.1水平列表控件概述129
6.23.2建立一个水平列表控件示例129
6.24排列列表控件（TileListControl）131
6.24.1排列列表控件概述131
6.24.2建立一个排列列表控件示例132
6.25下拉列表控件（ComboBoxControl）134
6.25.1下拉列表控件概述135
6.25.2建立一个下拉列控件示例135
6.26数据表格控件（DataGridControl）137
6.26.1数据表格控件概述137
6.26.2建立一个数据表格表控件示例138
6.27树结构控件（TreeControl）140
6.27.1树结构控件概述140
6.27.2建立一个树结构控件示例141
6.28计数器控件（NumbericStepperControl）142
6.28.1计数器控件概述143
6.28.2建立一个计数器控件示例143
6.29日期选择器和日期条控件（DateChooserandDateFieldControls）144
6.29.1日期选择器控件概述144
6.29.2建立一个日期选择器控件示例145
6.29.3日期条控件概述146
6.29.4建立一个日期条控件示例147
6.30图像控件（ImageControl）148
6.30.1图像控件概述148
6.30.2建立一个图像控件示例148
6.31SWF加载器控件（SWFLoaderControl）149
6.31.1SWF加载器控件概述149
6.31.2建立一个SWF加载器控件示例150
6.32音像控件（VideoDisplayControl）151
6.32.1音像控件概述151
6.32.2建立一个音像显示控件示例151
6.33选色器控件（ColorPickerControl）152
6.33.1选色器控件概述152
6.33.2建立一个默认的选色器控件示例153
6.33.3建立一个用户自定义的选色器控件示例154
6.34警告控件（AlertControl）156
6.34.1警告控件概述156
6.34.2建立一个警告控件示例157
第3篇Flex设计篇
第7章基础知识：容器（Container）161
7.1什么是容器162
7.1.1容器简介162
7.1.2Flex容器的定位方式162
7.1.3Flex的分类162
7.2应用容器（ApplicationContainer）163
7.2.1应用容器简介163
7.2.2应用对象简介164
7.3布局容器（LayoutContainer）165
7.3.1画布布局容器（CanvasLayoutContainer）165
7.3.2盒子、水平盒子、垂直盒子布局容器（Box、HboxandVBoxLayoutContainer）167
7.3.3控制条布局容器（ControlBarLayoutContainer）169
7.3.4应用控制条布局容器（ApplicationControlBarLayoutContainer）170
7.3.5分离盒、水平分离盒、垂直分离盒容器（DividedBox，HdividedBoxandVDividedBox）172
7.3.6表单、表单头、单元格布局容器（Form,FormHeadingandFormItemLayoutContainer）174
7.3.7格栅布局容器（GridLayoutContainer）180
7.3.8面板布局容器（PanelLayoutContainer）183
7.3.9排列模板布局容器（TileLayoutContainer）184
7.3.10标题窗口布局容器（TitleWindowLayoutContainer）186
7.4导航容器（NavigatorContainer）188
7.4.1视窗堆栈导航容器（ViewStackNavigatorContainer）188
7.4.2列表导航容器（TabNavigatorContainer）191
7.4.3折叠导航容器（AccordionnavigatorContainer）193
第8章约束版面布局（Constraint-basedLayout）197
8.1约束版面布局（Constraint-basedLayout）概观198
8.2插入和定位组件198
8.3定义约束定位的布局200
第9章行为控制（Behavior）203
9.1行为控制204
9.1.1行为控制效果204
9.1.2工厂类和实体类（FactoryandInstanceClasses）205
9.1.3Flex支持的效果206
9.1.4Flex的触发器（triggers）211
9.2使用行为控制212
9.2.1在MXML中使用数据绑定来实现行为控制213
9.2.2在MXML中使用样式来实现行为控制213
9.2.3使用setStyle()和getStyle()函数在MXML中定义的行为效果213
9.3在ActionScript中实现行为控制214
9.3.1倒序显示控件的行为效果216
9.3.2终止/暂停行为效果216
9.3.3建立一个可以重复使用的行为效果217
9.3.4在ActionScript使用样式应用行为效果218
9.3.5使用Effect.target和Effect.targets属性应用行为效果222
9.4行为效果技巧224
9.4.1设定行为效果存在的时间224
9.4.2使用嵌入的字体显示行为效果225
9.4.3使用组合行为效果226
9.4.4使用动画属性（AnimateProperty）行为效果228
9.4.5重复（Repeating）行为效果229
9.4.6延迟（Delaying）行为效果的发生230
9.4.7使用遮罩（Mask）行为效果231
第10章样式（Style）和主题（Theme）233
10.1样式概观234
10.1.1Flex使用样式的方法234
10.1.2样式的继承特性234
10.2MXML使用样式表单234
10.2.1使用外部的样式表单文件235
10.2.2使用本地的样式定义236
10.2.3使用组件标签内部属性样式239
10.3在ActionScript中使用样式表单240
10.3.1使用StyleManager类240
10.3.2使用CSSStyleDeclaration类241
10.3.3使用getStyle()和setStyle()方法242
10.3.4在运行时使用样式表单244
10.4样式值的格式245
10.4.1长度（Length）格式245
10.4.2时间（Time）格式248
10.4.3颜色（Color）格式248
10.4.4使用数组定义样式属性249
10.5使用CascadingStyleSheets（CSS）样式表单文件252
10.5.1CSS概述252
10.5.2属性和选择器（selector）名称252
10.5.3CSS中的继承253
10.5.4Flex中的CSS253
10.5.5类选择器（Classselector）253
10.5.6类型选择器（Typeselector）254
10.5.7使用混合的选择器256
10.5.8选择器的优先权257
10.5.9所支持的CSS属性259
10.5.10在样式中嵌入数据源260
10.6样式的继承261
10.6.1样式继承顺序261
10.6.2继承异议（exceptions）264
10.6.3支持的样式264
10.6.4主题色彩属性265
10.7主题概观265
10.7.1使用主题266
10.7.2Flex包含的主题文件266
10.7.3利用格式化文件编译主题SWC件267
第11章皮肤（Skin）269
11.1皮肤的构成270
11.2建立图形皮肤271
11.2.1使用setStyle()方法271
11.2.2使用CSS表单272
11.2.3使用标签内部定义方法273
11.3建立程序皮肤274
11.4建立状态皮肤275
11.5子组件的皮肤277
第12章条目渲染器（ItemRenderer）279
12.1条目渲染器概观280
12.1.1默认的条目渲染器280
12.1.2用户自定义的条目渲染器280
12.1.3条目渲染器的应用布局281
12.2建立用户自定义条目渲染器281
12.2.1建立标签内部（drop-in）条目渲染器和选项编辑器281
12.2.2建立程序内部的条目渲染器和选项编辑器285
12.2.3使用Flex组件文件作为条目渲染器和选项编辑器289
12.2.4使用ActionScript类文件作为条目渲染器292
第13章工具条提示（ToolTips）297
13.1工具条提示概观298
13.2建立工具条提示298
13.2.1使用ToolTip属性建立提示298
13.2.2子容器工具条提示显示原则298
13.2.3提示信息的换行显示300
13.2.4设定工具条提示的样式301
13.2.5设定工具条提示的宽度302
13.2.6使用工具条提示事件303
13.3使用工具条提示管理（ToolTipManager）304
13.3.1激活和禁用工具条提示304
13.3.2延迟工具条提示时间305
13.3.3在工具条提示上使用行为效果307
13.3.4建立动态的工具条提示308
13.3.5建立用户自定义工具条提示308
13.4使用错误信息的工具条提示310
13.5重写工具条提示的皮肤312
第14章光标管理器（CursorManager）315
14.1使用CursorManager光标管理器316
14.2使用忙碌光标318
14.2.1设定忙碌光标318
14.2.2使用忙碌光标属性320
14.2.3使用手形光标320
第15章Flex应用程序本地化（Localizing）321
15.1本地化概观322
15.1.1资源包（ResourceBundle）和属性文件（PropertiesFile）322
15.1.2本地化工作流程322
15.2建立本地化应用程序323
第16章动态重复控件和容器（Repeating）327
16.1动态重复控件和容器（Repeating）简介328
16.2建立重复控件328
16.2.1建立基本静态的重复控件329
16.2.2建立动态循环的重复控件332
16.3引用重复控件333
16.3.1引用重复的子类控件335
16.3.2引用嵌套的重复控件335
16.3.3重复控件的事件处理336
16.4使用用户自定义MXML重复控件337
16.5使用重复控件的注意事项339
第17章视窗状态（ViewStates）341
17.1视窗状态概观342
17.1.1简单的登录表格示例342
17.1.2使用视窗状态控制布局344
17.1.3对比视窗状态和导航346
17.2建立和使用视窗状态346
17.2.1使用FlexBuilder中建立新的视窗状态346
17.2.2在ActionScript代码中建立新的视窗状态349
17.3定义新的视窗状态352
17.3.1重写组件属性352
17.3.2重写组件样式353
17.3.3增加和减少组件354
17.3.4在事件处理中设定重写356
第18章过渡（Transition）359
18.1在登录表格上使用过渡360
18.2定义过渡362
18.2.1定义多个过渡364
18.2.2定义效果目标365
18.2.3定义效果起始和终止值365
18.3在过渡中使用行为效果365
18.4过滤过渡（FilteringT）368
18.5使用过渡效果的提示370
第19章拖放行为（DragandDorp）371
19.1拖放行为概观372
19.2在列表类控件上使用拖放行为372
19.2.1实现基本的列表类控件拖放行为372
19.2.2两个方向的拖放行为374
19.2.3在同一个控件上的拖放行为376
19.2.4列表类控件的拖动放置属性378
19.3人为添加拖放行为378
19.3.1用来定义拖放操作的类379
19.3.2手工拖放实现原理380
19.3.3手工拖放操作示例380
19.4拖放行为示例383
19.4.1使用容器作为放置目标示例384
19.4.2设定拖动代理385
19.4.3对放置目标的dragOver和dragExit事件进行管理387
19.5移动和复制数据391
19.5.1移动和复制391
19.5.2在列表控件和数据列表控件之间移动或复制数据391
19.5.3在非列表类控件之间移动或复制数据394
第20章嵌入外部资源（EmbeddingAssets）399
20.1嵌入外部资源概观400
20.2嵌入参数401
20.3嵌入资源类型402
第4篇Flex数据篇
第21章Flex与外部通信407
21.1获得环境信息408
21.2传递数据到Flex应用程序410
21.3从Flex应用程序接触外部JavaScript函数412
21.3.1使用ExternalInterfaceAPI获得JavaScript412
21.3.2使用navigateToURL()方法获得JavaScript415
21.4从JavaScript应用程序获得Flex416
第22章共享对象（SharedObjects）419
22.1共享对象概观420
22.2使用共享对象420
22.2.1在共享对象中增加数据和删除共享对象421
22.2.2使用共享对象的示例421
第23章数据获取和联系（DataAccessandInterconnectivity）427
23.1从Flex中获得服务器的数据428
23.1.1使用HTTPService组件428
23.1.2使用WebService组件430
23.1.3使用RemoteObject组件432
23.2表达数据（RepresentingData）437
23.3数据绑定（DataBinding）438
23.3.1数据绑定的3种方法439
23.3.2使用“{}”绑定数据到数据模型（DataModels）440
23.3.3绑定一个数据源到多个目标属性441
23.3.4绑定多个数据源到一个目标属性的示例442
23.3.5定义双向的绑定示例442
23.3.6使用Bindable元数据标签443
23.4数据存储（DataStoring）444
23.4.1定义一个数据模型444
23.4.2在数据模型中使用数据确证445
23.4.3绑定数据到XML数据模型447
23.5数据确证（DataValidating）447
23.5.1事件触发确证行为示例448
23.5.2程序触发确证行为示例449
23.5.3激活和失活validator450
23.5.4确证必须的输入项451
23.5.5使用数据绑定来定义validator452
23.6数据格式化（DataFormatting）453
23.6.1使用数据格式化453
23.6.2使用CurrencyFormatter类示例453
23.6.3使用NumberFormatter类示例454
23.6.4使用PhoneFormatter类示例455
23.6.5使用ZipCodeFormatter类示例456
23.6.6使用DateFormatter类示例457
第24章图表组件
（ChartingComponents）461
24.1图表组件概览462
24.1.1使用图表组件462
24.1.2序列类、坐标轴类和图表事件463
24.2图表组件概览463
24.2.1面积图表（AreaChart）示例463
24.2.2条形图表（BarChart）示例466
24.2.3气泡图表（BubbleChart）示例468
24.2.4蜡烛图表（CandlestickChart）示例473
24.2.5圆柱图表（ColumnChart）示例475
24.2.6HighLowOpenClose图表
（HighLowOpenCloseChart）示例477
24.2.7折线图表（LineChart）示例478
24.2.8圆饼图表（PieChart）示例480
24.2.9散点图表（PlotChart）示例481
24.2.10使用多个数据序列示例483
第5篇Flex综合实例篇
第25章查询天气系统——基于
Cairngorm框架487
25.1Cairngorm框架概览488
25.2查询天气系统分析489
25.2.1整体结构489
25.2.2数据来源489
25.2.3建立项目490
25.3值对象491
25.3.1查询信息值对象QueryItemVO.as491
25.3.2城市信息值对象CityInfoVO.as492
25.4视图代码493
25.4.1查询信息视图QueryPanel.mxml493
25.4.2城市信息视图
CityInfoPanel.mxml495
25.4.3天气预报数据格栅视图
WeatherResultPanel.mxml496
25.4.4温度折线图表视图
WeatherResultChart.mxml499
25.5模型定位器代码502
25.5.1模型定位器ModelLocator.as502
25.5.2模型变量类GetWeather.as503
25.6事件程序
GetWeatherByCityEvent.as504
25.7控制器程序GetWeatherBy
CityControl.as504
25.8命令程序
GetWeatherByCityCommand.as505
25.9服务层代码507
25.9.1服务程序Services.mxml507
25.9.2服务委托程序ServicesDelegate.as508
25.10主程序
WeatherForeCastExample.mxml509
25.11运行和测试512
……