第一篇 基础篇 2
第1章 Flex概述 2
1.1 Flex简介 2
1.1.1 Flex的技术特点 3
1.1.2 Flex 3.0的新特性 5
1.2 Flex Builder 3的下载与安装 6
1.2.1 安装Flex Builder 3的系统要求 7
1.2.2 下载Flex Builder 3 Beta 1 7
1.2.3 Flex Builder 3 Beta 1的安装 9
1.3 Flex基础结构MXML介绍 11
1.4 建立第一个Flex 3.0程序 12
1.5 编译与运行第一个Flex 3.0程序 15
1.6 小结 16
第2章 熟悉开发环境Flex Builder 3 17
2.1 熟悉Flex Builder 3工作区 17
2.2.1 Perspectives(透视) 17
2.2.2 Editors(编辑器) 18
2.2.3 Views(视图) 20
2.2 编译与运行Flex 3.0程序详解 21
2.3 调试Flex 3.0程序 23
2.3.1 添加断点 23
2.3.2 调试程序 24
2.3.3 监视变量 25
2.4 Flex 3.0项目工程概述 25
2.4.1 Flex Project 26
2.4.2 ActionScript Project 26
2.4.3 AIR Project 26
2.4.4 Flex Library Project 26
2.5 Flex Builder 3常用快捷键 27
2.6 使用Flex Help 27
2.7 小结 28
第二篇 ActionScript 3.0语法篇 30
第3章 ActionScript 3.0基础 30
3.1 ActionScript 3.0概述 30
3.2 使用ActionScript 3.0 30
3.2.1 在MXML文件中直接编写ActionScript 3.0 31
3.2.2 在AS文件中编写ActionScript 3.0 31
3.2.3 MXML中引用AS文件 33
3.3 创建第一个ActionScript 3.0应用程序 33
3.4 小结 37
第4章 数据类型 38
4.1 常量与变量 38
4.1.1 直接常量和符号常量 38
4.1.2 变量 39
4.1.3 变量赋初值 40
4.1.4 局部变量和全局变量 40
4.1.5 变量的存储方式 42
4.2 整型数据 43
4.2.1 整型常量 43
4.2.2 整型变量 44
4.3 实型数据 45
4.3.1 实型常量的表示方法 46
4.3.2 实型变量 47
4.4 字符串数据 47
4.4.1 字符串常量 48
4.4.2 转义字符 48
4.4.3 字符串变量 49
4.5 各类型数据之间的转换 49
4.5.1 自动类型转换 49
4.5.2 强制类型转换 50
4.6 小结 50
第5章 运算符和表达式 51
5.1 ActionScript 3.0运算符简介 51
5.2 算术运算符和算术表达式 52
5.2.1 基本的算术运算符 52
5.2.2 算术表达式 53
5.2.3 运算符的优先级和结合性 53
5.2.4 自增、自减运算符 53
5.3 关系运算符和关系表达式 54
5.3.1 关系运算符 54
5.3.2 关系表达式 55
5.4 逻辑运算符和逻辑表达式 56
5.4.1 逻辑运算符 56
5.4.2 逻辑运算的值 57
5.4.3 逻辑表达式 57
5.5 赋值运算符和赋值表达式 58
5.3.1 简单赋值运算符和简单赋值表达式 58
5.3.2 复合赋值运算符和复合赋值表达式 59
5.6 逗号运算符和逗号表达式 59
5.7 位运算符 60
5.8 小结 63
第6章 程序设计的基本结构 64
6.1 顺序结构程序设计 64
6.1.1 表达式语句 64
6.1.2 函数调用语句 64
6.1.3 复合语句 65
6.1.4 空语句 65
6.1.5 赋值语句 65
6.2 分支结构程序设计 67
6.2.1 if语句 67
6.2.2 if…else语句 67
6.2.3 if…else…if语句 68
6.2.4 if语句的嵌套 71
6.2.5 switch语句 72
6.3 循环结构程序设计 74
6.3.1 goto语句 74
6.3.2 while语句 75
6.3.3 do-while语句 75
6.3.4 for语句 77
6.3.5 循环的嵌套 80
6.3.6 几种循环语句的比较 80
6.3.7 break语句 80
6.3.8 continue语句 81
6.4 小结 82
第7章 函数 83
7.1 函数概述 83
7.2 函数定义的一般形式 84
7.2.1 无参函数的定义形式 84
7.2.2 有参函数的定义形式 85
7.3 函数的参数和函数的返回值 86
7.3.1 形式参数和实际参数 86
7.3.2 函数的返回值 87
7.4 函数的调用 88
7.4.1 函数调用的一般形式 88
7.4.2 函数调用的方式 89
7.5 函数的嵌套调用 89
7.6 函数的递归调用 90
7.7 数组作为函数参数 91
7.7.1 数组元素作为函数实参 92
7.7.2 数组名作为函数参数 92
7.8 小结 93
第8章 面向对象基础 94
8.1 类和对象 94
8.1.1 类的定义形式 94
8.1.2 类的成员类型 95
8.1.3 调用类中的成员 96
8.2 构造函数和析构函数 97
8.2.1 构造函数 97
8.2.2 析构函数 99
8.3 继承与派生 100
8.3.1 派生类定义的一般形式 101
8.3.2 派生类的保护成员 101
8.3.3 派生类的构造函数 102
8.4 接口 103
8.4.1 创建接口 103
8.4.2 使用类实现接口 104
8.5 小结 105
第9章 数字处理 106
9.1 数字的不同表现形式 106
9.2 不同数字类型之间的转换 107
9.2.1 输出其他进制函数toString 107
9.2.2 十进制转化函数parseInt 108
9.3 四舍五入 108
9.3.1 四舍五入函数round 109
9.3.2 其他舍入函数 109
9.4 格式化输出 110
9.5 格式化货币数字 111
9.6 生成随机数 112
9.6.1 Math类中生成随机实型函数random 112
9.6.2 NumberUtilities类中生成随机数函数random 112
9.7 小结 113
第10章 日期与时间 114
10.1 获取系统当前日期 114
10.2 获取日期中的特定值 114
10.3 自定义星期名和月份名 115
10.4 格式化输出日期 116
10.5 使用计时器 118
10.6 计算日期特定值的间隔 119
10.7 从字符串中获取日期 120
10.8 小结 121
第11章 字符串 122
11.1 连接字符串 122
11.1.1 “+”操作符连接字符串 123
11.1.2 “+=”操作符连接字符串 123
11.2 字符串中使用引号 124
11.3 插入空白字符 124
11.4 搜索匹配字符串 125
11.4.1 顺序搜索字符串函数indexOf 125
11.4.2 逆序搜索字符串函数lastIndexOf 126
11.5 取字符串的子串 126
11.5.1 substr方法 127
11.5.2 substring方法 127
11.5.3 slice方法 128
11.6 字符串转为数组 128
11.7 替换字符串 129
11.7.1 替换字符串函数replace 129
11.7.2 其他替换字符串方法 130
11.8 对字符串中的单字符操作 131
11.9 大小写转换 131
11.10 过滤空白字符 132
11.11 反转字符串 133
11.12 存取ASCII码 134
11.12.1 以ASCII码构造字符串函数ffomCharCode 134
11.12.2 读取单字符的ASCII码函数charCodeAt 135
11.13 小结 135
第12章 数组 136
12.1 数组简介 136
12.1.1 数组的分类 136
12.1.2 创建数组的方法 137
12.2 在数组首部和尾部添加元素 138
12.2.1 数组尾部添加新元素函数push 138
12.2.2 使用“[]”操作符在尾部添加新元素 138
12.2.3 数组首部添加新元素函数unshift 139
12.3 遍历数组元素 139
12.4 搜索匹配的数组元素 139
12.4.1 findMatchIndex方法 140
12.4.2 findLastMatchIndex方法和findMatchIndices方法 141
12.5 删除数组元素 141
12.5.1 删除任意数组元素函数splice 141
12.5.2 删除数组首部元素函数shift 142
12.5.3 删除数组尾部元素函数pop 142
12.5.4 删除特定值的数组元素 143
12.6 在数组中插入元素 144
12.7 转换字符串为数组 145
12.8 转换数组为字符串 145
12.9 复制数组 146
12.9.1 concat方法 146
12.9.2 slice方法 147
12.9.3 ArrayUtilities类的duplicate方法 147
12.10 存储多维数据 148
12.11 数组排序 150
12.11.1 sort方法 150
12.11.2 sortOn方法 152
12.12 实现自定义排序 154
12.13 数组元素的最大值和最小值 155
12.14 比较数组 156
12.15 联合数组 157
12.15.1 创建联合数组 157
12.15.2 访问联合数组元素 158
12.15.3 遍历联合数组 159
12.16 小结 159
第13章 使用XML 160
13.1 XML概述 160
13.2 创建XML对象 161
13.2.1 使用XML标签创建XML对象 161
13.2.2 使用字符串创建XML对象 162
13.3 XML对象中添加元素 162
13.3.1 将元素名作为属性添加元素 163
13.3.2 使用“[]”操作符添加元素 163
13.3.3 其他添加元素的方法 164
13.4 XML对象中添加元素内容 164
13.4.1 将元素名作为属性添加元素内容 165
13.4.2 使用XML类中的方法添加元素内容 165
13.5 XML元素中添加属性 166
13.5.1 使用“@”操作符添加属性 166
13.5.2 使用“[]”操作符添加属性 167
13.6 从XML中读取元素 167
13.7 定位元素 168
13.8 读取元素内容 169
13.9 读取属性值 170
13.9.1 使用“@”操作符读取属性值 170
13.9.2 使用attribute方法读取属性值 171
13.9.3 使用attributes方法读取全部属性值 171
13.10 删除元素和属性 172
13.11 加载XML文件 173
13.12 小结 174
第三篇 组件篇 176
第14章 使用组件构建Flex界面 176
14.1 Flex组件概述 176
14.2 Flex可见组件 177
14.2.1 可见组件的分类 177
14.2.2 使用可见组件构建界面 177
14.3 使用Flex非可见组件 178
14.4 Flex常用组件 179
14.4.1 按钮组件Button 180
14.4.2 下拉框组件ComboBox 181
14.4.3 图像组件Image 182
14.4.4 标签组件Label 182
14.4.5 多行文本组件TextArea 183
14.4.6 输入框组件TextInput 183
14.4.7 文本编辑组件RichTextEditor 184
14.5 小结 184
第15章 Flex 3.0界面设计实战 185
15.1 登录框实例 185
15.1.1 制作登录框界面 185
15.1.2 使用按钮处理事件 188
15.1.3 制作校验码 189
15.1.4 验证合法用户 191
15.1.5 合法用户进入主程序 192
15.2 菜单导航实例 194
15.2.1 制作菜单 194
15.2.2 设计状态 195
15.2.3 菜单导航 197
15.2.4 制作状态切换时的过渡效果 199
15.3 柱状图实例 201
15.3.1 设计数据集 201
15.3.2 设计柱状图界面及数据绑定 202
15.4 文件目录浏览器实例 204
15.4.1 外观界面设计 205
15.4.2 文件系统组件的路径 207
15.4.3 制作“后退”效果 208
15.5 AIR程序集成网页实例 209
15.5.1 HTML组件集成网页 209
15.5.2 使用JavaScriptObject类型调用DOM 211
15.5.3 JavaScript与ActionScript 3.0的交互 212
15.6 文本编辑器实例 216
15.6.1 设计文本编辑器界面 217
15.6.2 选择文件 218
15.6.3 读取文件 219
15.6.4 写文件 220
15.7 组件数据拖曳实例 222
15.8 小结 223
第16章 自定义效果美化界面 224
16.1 自定义事件效果 224
16.2 Flex 3.0的效果组件 225
16.2.1 模糊效果组件〈mx:Blur〉 226
16.2.2 溶解效果组件〈mx:Dissolve〉 226
16.2.3 渐显效果组件〈mx:Fade〉 228
16.2.4 发光效果组件〈mx:Glow〉 229
16.2.5 移动效果组件〈mx:Move〉 230
16.2.6 改变大小组件〈mx:Resize〉 231
16.2.7 旋转效果组件〈mx:Rotate〉 232
16.2.8 声音效果组件〈mx:SoundEffect〉 233
16.2.9 显示顺序组件〈mx:WipeDown〉 235
16.2.10 缩放效果组件〈mx:Zoom〉 235
16.2.11 组合效果组件〈mx:Parallel〉 237
16.3 自定义组件界面 238
16.3.1 使用组件属性改变界面 238
16.3.2 使用setStyle方法改变界面 239
16.4 使用Filter滤镜类 240
16.5 小结 241
第17章 CSS美化界面 242
17.1 CSS简介 242
17.2 样式名 243
17.2.1 默认样式名 243
17.2.2 自定义样式名 243
17.2.3 分组样式名 244
17.3 属性 245
17.3.1 字体(Font) 245
17.3.2 文本(Text) 246
17.3.3 背景(Background) 249
17.3.4 定位(Positioning) 250
17.3.5 尺寸(Dimensions) 251
17.3.6 布局(Layout) 252
17.3.7 外补丁(Margins) 253
17.3.8 边框(Borders) 254
17.3.9 内补丁(Paddings) 256
17.3.10 列表(Lists) 257
17.3.11 表格(Table) 258
17.3.12 滚动条(Scrollbar) 258
17.3.13 打印(Printing) 259
17.3.14 声音(Aural) 260
17.4 单位 262
17.4.1 长度(Length) 262
17.4.2 颜色(Color) 263
17.4.3 角度(Angle) 264
17.4.4 时间(Time)和频率(Frequency) 264
17.5 规则 264
17.5.1 导入外部样式表@import 264
17.5.2 指定字符集@charset 265
17.5.3 导入外部字体@font-face 265
17.5.4 指定设备@media 265
17.6 静态滤镜 266
17.6.1 色彩层滤镜(Gradient) 266
17.6.2 边界图片滤镜(AlphaImageLoader) 267
17.6.3 透明度滤镜(Alpha) 268
17.6.4 图片处理滤镜(BasicImage) 269
17.6.5 模糊滤镜(Blur) 270
17.6.6 阴影滤镜(DropShadow) 271
17.6.7 浮雕滤镜(Emboss) 272
17.6.8 发光滤镜(Glow) 273
17.6.9 矩阵遮罩(Matrix) 274
17.6.10 运动模糊滤镜(MotionBlur) 276
17.6.11 波纹滤镜(Wave) 277
17.6.12 X光滤镜(Xray) 278
17.6.13 反相滤镜(Invert) 278
17.7 转换滤镜 279
17.7.1 百叶窗效果滤镜(Blinds) 279
17.7.2 国际象棋棋盘效果滤镜(CheckerBoard) 280
17.7.3 渐隐效果滤镜(Fade) 281
17.7.4 滚动渐隐效果滤镜(GradientWipe) 282
17.7.5 对角扩张效果滤镜(Insert) 283
17.7.6 放射状擦除效果滤镜(RadialWipe) 284
17.7.7 随机线条效果滤镜(RandomBars) 285
17.7.8 随机像素溶解效果滤镜(RandomDissolve) 286
17.7.9 拉伸(缩)变形效果滤镜(Stretch) 287
17.7.10 风车叶轮旋转效果滤镜(Wheel) 288
17.7.11 擦地板的效果滤镜(Zigzag) 288
17.8 使用〈mx:Style〉组件定义CSS 289
17.8.1 〈mx:Style〉组件内部定义CSS 290
17.8.2 〈mx:Style〉组件调用外部CSS 290
17.8.3 两种CSS定义方式的比较 291
17.9 Flex2StyleExplorer工具辅助设计CSS样式 291
17.10 Flex组件应用CSS样式 294
17.11 运行时动态加载CSS样式 295
17.11.1 调用SWF样式文件 297
17.11.2 撤销SWF样式文件 297
17.11.3 按钮控制应用样式 298
17.11.4 完成剩余代码 298
17.12 小结 301
第18章 Flex美化应用 302
18.1 自定义字体 302
18.1.1 自定义字体概述 302
18.1.2 使用Flex支持的系统字体 303
18.1.3 使用Flex不支持的系统字体 304
18.2 自定义提示文本 305
18.3 自定义光标 307
18.4 自定义AIR程序窗口外观 309
18.5 苹果风格界面实例 314
18.5.1 组件设计 314
18.5.2 CSS美化组件界面 319
18.5.3 ApplicationControlBar组件样式 320
18.5.4 Application组件样式 320
18.5.5 MenuBar组件样式 321
18.5.6 Panel组件样式 321
18.5.7 自定义“panelTitle”样式 322
18.5.8 TextInput组件样式 323
18.5.9 Button组件样式 323
18.5.10 自定义“blueButton”样式 324
18.5.11 Accordion组件样式 324
18.5.12 NumericStepper组件样式 325
18.5.13 CheckBox组件样式 325
18.5.14 RadioButton组件样式 326
18.5.15 ComboBox组件样式 327
18.5.16 TabNavigator组件样式 327
18.5.17 自定义“selectedTab”样式 328
18.5.18 Tab组件样式 329
18.5.19 List组件样式 329
18.5.20 DataGrid组件样式 330
18.5.21 DateChooser组件样式 331
18.6 Vista风格界面实例 332
18.6.1 组件设计 332
18.6.2 CSS美化组件界面 336
18.6.3 全局样式global 337
18.6.4 AccordionHeader组件样式 337
18.6.5 Application组件样式 339
18.6.6 Button组件样式 339
18.6.7 ButtonBar组件样式 341
18.6.8 ColorPicker组件样式 346
18.6.9 ComboBox组件样式 347
18.6.10 DataGrid组件样式 348
18.6.11 DateChooser组件样式 349
18.6.12 ProgressBar组件样式 350
18.6.13 Image组件样式 350
18.6.14 MenuBar组件样式 351
18.6.15 RadioButton组件样式 351
18.6.16 CheckBox组件样式 352
18.6.17 HSlider组件样式 352
18.6.18 TitleWindow组件样式 353
18.6.19 调用自定义窗体 354
18.6.20 调用“style.css”文件 354
18.7 小结 354
第四篇 数据篇 356
第19章 Flex中的数据处理 356
19.1 数据绑定 356
19.1.1 简单绑定方式 356
19.1.2 使用〈mx:Binding〉组件绑定数据 357
19.2 复杂数据的存储 359
19.2.1 使用〈mx:Model〉组件存储数据 359
19.2.2 使用〈mx:Object〉组件存储数据 361
19.2.3 使用〈mx:XML〉组件存储数据 362
19.3 数据验证 363
19.3.1 数据验证组件概述 363
19.3.2 如何使用数据验证组件 364
19.3.3 验证触发方式 365
19.3.4 验证失败处理 368
19.3.5 自定义验证组件 369
19.3.6 数据验证应用实例 372
19.4 数据格式化 377
19.4.1 格式化组件概述 378
19.4.2 货币格式化组件〈mx:CurrencyFormatter〉 378
19.4.3 日期格式化组件〈mx:DateFormatter〉 379
19.4.4 数字格式化组件〈mx:NumberFormatter〉 381
19.4.5 电话格式化组件〈mx:PhoneFormatter〉 382
19.4.6 邮编格式化组件〈mx:ZipCodeFormatter〉 383
19.5 小结 383
第20章 使用正则表达式匹配字符串 384
20.1 正则表达式概述 384
20.2 正则表达式的语法 384
20.2.1 元字符 385
20.2.2 转义字符 385
20.2.3 限定符 385
20.2.4 字符集合 386
20.2.5 反义 386
20.2.6 多规则 387
20.2.7 子表达式 388
20.3 使用Regex Tester工具测试正则表达式 388
20.4 Flex 3.0中使用正则表达式 389
20.4.1 使用RegExp类定义正则表达式 389
20.4.2 使用RegExp类匹配数据 390
20.4.3 Flex中使用正则表达式实例 391
20.5 小结 395
第21章 数据传输与交互 396
21.1 数据传输的方式 396
21.1.1 内部数据传输 396
21.1.2 文件流方式传输 399
21.1.3 XML方式传输 401
21.1.4 其他方式传输 403
21.2 使用〈mx:HTTPService〉组件与HTTP程序交互 403
21.3 〈mx:HTTPService〉组件实例 404
21.3.1 编写ASP.NET程序 405
21.3.2 创建虚拟目录 407
21.3.3 编写Flex程序 409
21.4 使用〈mx:WebService〉组件与WebService程序交互 411
21.4.1 WebService概述 412
21.4.2 如何使用〈mx:WebService〉组件 412
21.5 〈mx:WebService〉组件实例 414
21.5.1 创建数据库 414
21.5.2 编写WebService 416
21.5.3 编写Flex程序 419
21.6 使用Fluorine网关与ASP.NET类交互 421
21.6.1 Fluorine简介 421
21.6.2 Fluorine的下载与安装 422
21.6.3 第三方组件RemoteObjectAMF0的使用方法 423
21.6.4 Fluorine实例 425
21.7 小结 432
第五篇 扩展篇 434
第22章 Cairngorm开发框架 434
22.1 Cairngorm简介 434
22.2 Flex 3.0中如何添加Cairngorm框架 435
22.3 Cairngorm框架中的基础类 436
22.3.1 类的文件组织结构 436
22.3.2 处理正常或异常结果的Responder类 437
22.3.3 查找服务的ServiceLocator类 437
22.3.4 处理事件的Command类 438
22.3.5 创建新事件的CairngormEvent类 438
22.3.6 管理事件的CairngormEventDispatcher类 439
22.3.7 监听事件的FrontController类 441
22.3.8 存储数据模型的ModelLocator类 442
22.3.9 辅助操作视图的ViewHelper类 442
22.3.10 查找视图的ViewLocator类 444
22.3.11 定义数据模型的ValueObject类 446
22.4 Cairngorm框架的运行原理 446
22.4.1 自定义事件(Cairngorm Event类) 446
22.4.2 自定义命令(Command类) 447
22.4.3 前台控制器(FrontController类)监听事件 448
22.4.4 在服务定位器(ServiceLocator类)中寻找服务 449
22.4.5 在模型定位器(ModelLocator类)中存取数据 450
22.4.6 使用ViewHelper类修改视图 451
22.4.7 使用ValueObject类自定义数据模型 452
22.5 Cairngorm实例 452
22.6 小结 466
第23章 Flex 3.0新特性的应用 467
23.1 加载PDF文件 467
23.1.1 加载PDF文件前的准备 467
23.1.2 使用HTMLControl类加载PDF文件 467
23.1.3 使用HTMLPDFCapability类检测Adobe Reader版本 468
23.1.4 加载PDF文件实例 468
23.2 使用本地SQL数据库 470
23.2.1 使用Select语句读取数据 470
23.2.2 使用Insert语句添加数据 471
23.2.3 使用Update语句修改数据 471
23.2.4 使用Delete语句删除数据 472
23.2.5 使用SQLConnection类连接数据库 472
23.2.6 使用SQLStatement类执行SQL语句 473
23.3 升级AIR应用程序 480
23.3.1 升级前的准备 481
23.3.2 检查版本信息 481
23.3.3 使用FileStream类下载最新版本 482
23.3.4 使用Updater类升级AIR应用程序 483
23.3.5 升级AIR应用程序实例 483
23.4 Flex 3.0中使用Ajax技术 487
23.4.1 Ajax技术简介 488
23.4.2 使用〈mx:HTML〉组件调用Ajax技术 488
23.4.3 Flex应用程序结合Ajax技术实例 489
23.5 使用Flex-Ajax Bridge技术控制Flex应用程序 496
23.5.1 Flex-Ajax Bridge技术简介 497
23.5.2 Flex-Ajax Bridge技术的运行原理 497
23.5.3 使用getCompenentID方法获取组件 500
23.5.4 使用getPropertyName方法获取属性值 501
23.5.5 使用setPropertyName方法设置属性值 501
23.5.6 为组件添加监听事件 502
23.5.7 调用Flex程序中的函数 502
23.5.8 Flex-Ajax Bridge技术控制Flex程序实例 503
23.6 小结 506
第六篇 实例篇 508
第24章 FLV播放器 508
24.1 前期准备 508
24.1.1 组织文件结构 508
24.1.2 导入Cairngorm框架 508
24.2 使用FlvModel类存储数据、状态及资源 509
24.3 使用FlvControl类监听事件 510
24.4 创建OpenVideoEvent事件 511
24.5 创建OpenVideoCommand命令 512
24.6 使用Utils类格式化时间 513
24.7 使用FlvPlayViewHelper类修改MXML组件 514
24.8 编写“FlvPlay.mxml”主程序 516
24.8.1 设计外观模型 516
24.8.2 实现菜单功能 518
24.8.3 VideoDisplay组件说明 519
24.8.4 实现“播放/暂停”功能 521
24.8.5 实现“停止”功能 522
24.8.6 实现“静音”功能 522
24.8.7 实现“全屏/退出全屏”功能 522
24.8.8 拖曳滑动条改变播放进度 523
24.8.9 实现键盘快捷键功能 524
24.8.10 完成“FlvPlay.mxml”主程序的剩余代码 525
24.9 小结 533
第25章 经典实例CairngormStore的分析 534
25.1 CairngormStore实例简介 534
25.2 如何运行CairngormStore实例 535
25.2.1 架设Java运行平台 535
25.2.2 架设AMF网关LiveCycle Data Services 539
25.2.3 编译运行前的准备 544
25.2.4 编译CairngormStore实例 545
25.3 CairngormStore实例的代码分析 547
25.3.1 使用ProductVO类建立商品数据模型 547
25.3.2 使用ShoppingCartElement类建立购物条目数据模型 549
25.3.3 使用ShoppingCart类建立购物车数据模型 550
25.3.4 使用ShopModelLocator类建立应用程序数据模型 552
25.3.5 使用ShopController类监听事件 555
25.3.6 在ServiceLocator类中定义服务 557
25.3.7 创建自定义事件 559
25.3.8 创建自定义命令 560
25.3.9 视图外观分析 563
25.4 如何添加和调用新服务 567
25.5 小结 568
第26章 视频分享网站 569
26.1 系统概述 569
26.1.1 系统架构 569
26.1.2 系统功能模块设计 569
26.2 系统设计 570
26.2.1 系统工作流程 571
26.2.2 功能模块的工作流程 571
26.3 数据库设计 574
26.3.1 数据库总体设计 574
26.3.2 数据表设计 574
26.3.3 使用查询分析器创建数据库和数据表 576
26.4 配置开发环境 578
26.4.1 安装和升级SQL Server 2000数据库 578
26.4.2 安装和配置JDBC 584
26.4.3 安装和配置Java开发平台eclipse 585
26.4.4 其他注意事项 586
26.5 服务器端代码分析 587
26.5.1 服务器端代码概述 587
26.5.2 UserCompl类 588
26.5.3 VideoCompl类 591
26.5.4 CommentCompl类 597
26.5.5 其他类 600
26.6 接口设计代码分析 601
26.6.1 接口概述 602
26.6.2 remoting-config.xml分析 602
26.6.3 Services.mxml分析 603
26.7 应用程序的总体框架 604
26.8 主页显示模块 606
26.9 用户登录模块 609
26.10 播放视频模块 611
26.11 上传视频模块 613
26.12 用户管理模块 617
26.13 超级管理员管理模块 621
26.14 评论模块 623
26.15 外观样式分析 623
26.16 小结 626
附录A 627