第1篇 Flex3.0基础篇 3
第1章 Flex概述 3
1.1 RIA概述 4
1.2 Flex概观 4
1.2.1 Flex应用技术 4
1.2.2 Flex组成元素 6
1.2.3 Flex技术与传统网页技术的对比 7
1.2.4 Flex的工作原理 8
第2章 FlexBuilder介绍 11
2.1配置Flex Builder开发环境 12
2.1.1下载并安装Flex Builder 3 12
2.1.2运行Flex Builder 3 14
2.2 Flex Builder简介 14
2.3 Flex Builder模式(perspective) 15
2.3.1 Flex Builder开发模式中的代码视图 15
2.3.2 Flex Builder中的代码提示帮助 16
2.3.3 Flex Builder开发模式中的设计视图 17
2.3.4 Flex Builder调试(Debug)模式 18
2.3.5编译应用程序 20
2.3.6运行和调试应用程序 21
2.3.7其他信息 21
2.4学习使用文本编辑器(Editor) 21
2.5学习建立第一个应用程序“Hello World!” 22
2.5.1建立第一个应用程序“Hello World !” 22
2.5.2 Flex Builder的生成文件 26
第2篇 Flex编程基础 29
第3章 MXML编程 29
3.1 MXML概述 30
3.1.1使用MXML的好处 30
3.1.2一个简单的MXML应用程序 30
3.2 MXML标签和ActionScript类之间的相互关系 31
3.3 MXML基本语法 31
3.3.1 MXML文件名 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.8 MXML标签规则 34
3.4 MXML与其他相关的标准 34
第4章 ActionScript编程 37
4.1 ActionScript 3.0概观 38
4.2 ActionScript语言特点 38
4.2.1字母(Literals ) 38
4.2.2分号(;) 39
4.2.3括号(0) 39
4.2.4注解(Comments) 39
4.2.5关键词和保留词(reserved words) 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.2 is操作符 44
4.4.3 as操作符 4
4.4.4类型转换 4
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.6 ActionScript语句 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中应用ActionScript 60
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组件的大小(Sizing Components) 65
5.2.1定义组件大小的方式 65
5.2.2如何使用组件默认值 66
5.2.3设置组件绝对值大小 66
5.2.4设置组件相对值大小 67
5.2.5使用约束布局定义组件大小 67
5.3组件的定位(Positioning Components) 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定义控件大小(Sizing Controls) 77
6.1.6控件定位(Positioning Controls) 79
6.2按钮控件(Button Control) 79
6.2.1基本按钮控件概述 80
6.2.2建立一个按钮控件示例 80
6.2.3改变按钮外观 82
6.3弹出按钮控件(PopUpButton Control) 83
6.3.1弹出按钮控件概述 84
6.3.2建立一个弹出按钮控件示例 84
6.4按钮条和开关按钮条控件(ButtonBar and ToggleBuaronBar Controls) 86
6.4.1按钮条和开关按钮条控件概述 87
6.4.2建立一个按钮条控件示例 87
6.4.3建立一个开关按钮条控件示例 89
6.5复选框控件(CheckBox Control) 90
6.5.1复选框控件概述 90
6.5.2建立一个复选框控件示例 91
6.6单选按钮控件(RadioButtonControl) 93
6.6.1单选按钮控件概述 93
6.6.2建立一个单选按钮控件示例 93
6.7链接按钮控件(LinkButton Control) 95
6.7.1链接按钮控样概述 95
6.7.2建立一个链接按钮控件 95
6.8链接条控件(LinkBar Control) 97
6.8.1链接条控件概述 97
6.8.2建立一个链接条控件示例 97
6.9标签条控件(TabBar Control) 99
6.9.1标签条控件概述 99
6.9.2建立一个标签条控件 100
6.10进度条控件(ProgressBar Control) 101
6.10.1进度条控件概述 101
6.10.2进度条控件模式 101
6.10.3建立一个进度条控件 102
6.11滚动条控件(ScrollBar Control) 103
6.11.1滚动条控件概述 104
6.11.2建立一个垂直滚动条控件示例 104
6.12水平滑杆和垂直滑杆控件(HSlider and VSlider Control) 106
6.12.1水平滑杆和垂直滑杆控件概述 106
6.12.2建立一个水平滑杆示例 107
6.13水平尺和垂直尺控件(HRule and VRule Control) 108
6.13.1水平尺和垂直尺控件概述 108
6.13.2建立一个水平尺和垂直尺控件示例 109
6.14标签控件(Label Control) 110
6.14.1标签控件概述 110
6.14.2建立一个标签控件示例 111
6.15文本条控件(TextInput Control) 111
6.15.1文本条控件概述 111
6.15.2建立一个文本条控件示例 112
6.16文本控件(Text Control) 113
6.16.1文本控件概述 113
6.16.2建立一个文本控件示例 113
6.17文本区域控件(TextArea Control) 114
6.17.1文本区域控件概述 115
6.17.2建立一个文本区域控件示例 115
6.18富文本编辑器控件(RichTextEditor Control) 116
6.18.1富文本编辑器控件概述 116
6.18.2建立一个富文本编辑器控件示例 117
6.19菜单控件(Menu Control) 118
6.19.1菜单控件概述 118
6.19.2建立一个菜单控件示例 119
6.20菜单条控件(MenuBar Control) 121
6.20.1菜单条控件概述 121
6.20.2建立一个菜单条控件示例 122
6.21弹出菜单按钮控件(PopUpMenuButton Control) 123
6.21.1弹出菜单按钮控件概述 123
6.21.2建立一个弹出菜单按钮控件示例 123
6.22列表控件(List Control) 125
6.22.1列表控件概述 125
6.22.2建立一个列表控件示例 126
6.23水平列表控件(HorizontalList Control) 129
6.23.1水平列表控件概述 129
6.23.2建立一个水平列表控件示例 129
6.24排列列表控件(TileList Control) 131
6.24.1排列列表控件概述 131
6.24.2建立一个排列列表控件示例 132
6.25下拉列表控件(ComboBox Control) 134
6.25.1下拉列表控件概述 135
6.25.2建立一个下拉列控件示例 135
6.26数据表格控件(DataGrid Control) 137
6.26.1数据表格控件概述 137
6.26.2建立一个数据表格表控件示例 138
6.27树结构控件(Tree Control) 140
6.27.1树结构控件概述 140
6.27.2建立一个树结构控件示例 141
6.28计数器控件(NumbericStepper Control) 142
6.28.1计数器控件概述 143
6.28.2建立一个计数器控件示例 143
6.29日期选择器和日期条控件(DateChooser and DateField Controls) 144
6.29.1日期选择器控件概述 144
6.29.2建立一个日期选择器控件示例 145
6.29.3日期条控件概述 146
6.29.4建立一个日期条控件示例 147
6.30图像控件(Image Control) 148
6.30.1图像控件概述 148
6.30.2建立一个图像控件示例 148
6.31 SWF加载器控件(SWFLoader Control) 149
6.31.1 SWF加载器控件概述 149
6.31.2建立一个SWF加载器控件示例 150
6.32音像控件(VideoDisplay Control) 151
6.32.1音像控件概述 151
6.32.2建立一个音像显示控件示例 151
6.33选色器控件(ColorPicker Control) 152
6.33.1选色器控件概述 152
6.33.2建立一个默认的选色器控件示例 153
6.33.3建立一个用户自定义的选色器控件示例 154
6.34警告控件(Alert Control) 156
6.34.1警告控件概述 156
6.34.2建立一个警告控件示例 157
第3篇 Flex设计篇 161
第7章 基础知识:容器(Container) 161
7.1什么是容器 162
7.1.1容器简介 162
7.1.2 Flex容器的定位方式 162
7.1.3 Flex的分类 162
7.2应用容器(Application Container) 163
7.2.1应用容器简介 163
7.2.2应用对象简介 164
7.3布局容器(Layout Container) 165
7.3.1画布布局容器(Canvas Layout Container) 165
7.3.2盒子、水平盒子、垂直盒子布局容器(Box、 Hbox and VBox Layout Container) 167
7.3.3控制条布局容器(ControlBar Layout Container) 169
7.3.4应用控制条布局容器(ApplicationControlBar Layout Container) 170
7.3.5分离盒、水平分离盒、垂直分离盒容器(Divided Box, HdividedBox and VDividedBox) 172
7.3.6表单、表单头、单元格布局容器(Form, FormHeading and FonnItem Layout Container) 174
7.3.7格栅布局容器(Grid Layout Container) 180
7.3.8面板布局容器(Panel Layout Container) 183
7.3.9排列模板布局容器(Tile Layout Container) 184
7.3.10标题窗口布局容器(TitleWindow Layout Container) 186
7.4导航容器(Navigator Container) 188
7.4.1视窗堆栈导航容器(ViewStack Navigator Container) 188
7.4.2列表导航容器(TabNavigator Container) 191
7.4.3折叠导航容器(Accordion navigator Container) 193
第8章 约束版面布局(Constraint-based Layout) 197
8.1约束版面布局(Constraint-based Layout)概观 198
8.2插入和定位组件 198
8.3定义约束定位的布局 200
第9章 行为控制(Behavior) 203
9.1行为控制 204
9.1.1行为控制效果 204
9.1.2工厂类和实体类(Factory and Instance Classes) 205
9.1.3 Flex支持的效果 206
9.1.4 Flex的触发器(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.1 Flex使用样式的方法 234
10.1.2样式的继承特性 234
10.2 MXML使用样式表单 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使用Cascading Style Sheets (CSS )样式表单文件 252
10.5.1 CSS概述 252
10.5.2属性和选择器(selector)名称 252
10.5.3 CSS中的继承 253
10.5.4 Flex中的CSS 253
10.5.5类选择器(Class selector) 253
10.5.6类型选择器(Type selector) 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.2 Flex包含的主题文件 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章 条目渲染器(Item Renderer) 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使用工具条提示管理(ToolTip Manager) 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章 光标管理器(Cursor Manager) 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资源包(Resource Bundle)和属性文件(Properties File) 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章 视窗状态(View States) 341
17.1视窗状态概观 342
17.1.1简单的登录表格示例 342
17.1.2使用视窗状态控制布局 344
17.1.3对比视窗状态和导航 346
17.2建立和使用视窗状态 346
17.2.1使用Flex Builder中建立新的视窗状态 346
17.2.2在Action Script代码中建立新的视窗状态 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过滤过渡(Filtering T) 368
18.5使用过渡效果的提示 370
第19章 拖放行为(Drag and Dorp) 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章 嵌入外部资源(Embedding Assets) 399
20.1嵌入外部资源概观 400
20.2嵌入参数 401
20.3嵌入资源类型 402
第4篇 Flex数据篇 407
第21章 Flex与外部通信 407
21.1获得环境信息 408
21.2传递数据到Flex应用程序 410
21.3从Flex应用程序接触外部JavaScript函数 412
21.3.1使用ExternalInterface API获得JavaScript 412
21.3.2使用navigateToURL()方法获得JavaScript 415
21.4从JavaScript应用程序获得Flex 416
第22章 共享对象(Shared Objects) 419
22.1共享对象概观 420
22.2使用共享对象 420
22.2.1在共享对象中增加数据和删除共享对象 421
22.2.2使用共享对象的示例 421
第23章 数据获取和联系(Data Access and Interconnectivity) 427
23.1从Flex中获得服务器的数据 428
23.1.1使用HTTPService组件 428
23.1.2使用WebService组件 430
23.1.3使用RemotcObject组件 432
23.2表达数据(Representing Data) 437
23.3数据绑定(Data Binding) 438
23.3.1数据绑定的3种方法 439
23.3.2使用“{}”绑定数据到数据模型(Data Models) 440
23.3.3绑定一个数据源到多个目标属性 441
23.3.4绑定多个数据源到一个目标属性的示例 442
23.3.5定义双向的绑定示例 442
23.3.6使用Bindable元数据标签 443
23.4数据存储(Data Storing) 444
23.4.1定义一个数据模型 444
23.4.2在数据模型中使用数据确证 445
23.4.3绑定数据到XML数据模型 447
23.5数据确证(Data Validating) 447
23.5.1事件触发确证行为示例 448
23.5.2程序触发确证行为示例 449
23.5.3激活和失活validator 450
23.5.4确证必须的输入项 451
23.5.5使用数据绑定来定义validator 452
23.6数据格式化(Data Formatting) 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章 图表组件(Charting Components) 461
24.1图表组件概览 462
24.1.1使用图表组件 462
24.1.2序列类、坐标轴类和图表事件 463
24.2图表组件概览 463
24.2.1面积图表(Area Chart)示例 463
24.2.2条形图表(Bar Chart)示例 466
24.2.3气泡图表(Bubble Chart)示例 468
24.2.4蜡烛图表(Candlestick Chart)示例 473
24.2.5圆柱图表(Column Chart)示例 475
24.2.6 HighLowOpenClose图表(HighLowOpenCloseChart)示例 477
24.2.7折线图表(Line Chart)示例 478
24.2.8圆饼图表(Pie Chart)示例 480
24.2.9散点图表(Plot Chart)示例 481
24.2.10使用多个数据序列示例 483
第5篇 Flex综合实例篇 487
第25章 查询天气系统——基于Cairngorm框架 487
25.1 Cairngorm框架概览 488
25.2查询天气系统分析 489
25.2.1整体结构 489
25.2.2数据来源 489
25.2.3建立项目 490
25.3值对象 491
25.3.1查询信息值对象QueryItemVO.as 491
25.3.2城市信息值对象CityInfoVO.as 492
25.4视图代码 493
25.4.1查询信息视图QueryPanel.mxml 493
25.4.2城市信息视图CityInfoPanel.mxml 495
25.4.3天气预报数据格栅视图WeatherResultPanel.mxml 496
25.4.4温度折线图表视图WeatherResultChart.mxml 499
25.5模型定位器代码 502
25.5.1模型定位器ModelLocator.as 502
25.5.2模型变量类GetWeather.as 503
25.6事件程序GetWeatherByCityEvent.as 504
25.7控制器程序GetWeatherBy CityControl.as 504
25.8命令程序GetWeatherByCityCommand.as 505
25.9服务层代码 507
25.9.1服务程序Services.mxml 507
25.9.2服务委托程序ServicesDelegate.as 508
25.10主程序WeatherForeCastExample.mxml 509
25.11运行和测试 512