第Ⅰ部分ActionScript 3.0语言基础 3
第1章ActionScript 3.0简介 3
1.1 ActionScript 3.0概述 3
1.2探索Flash平台 4
1.2.1程序员的视角 4
1.2.2用户的视角 9
1.3从ActionScript 2.0过渡到ActionScript 3.0 11
1.3.1显示列表 11
1.3.2运行时错误 11
1.3.3运行时数据类型 11
1.3.4方法闭包 12
1.3.5自带事件模型 12
1.3.6正则表达式 12
1.3.7 E4X 12
1.4小结 12
第2章ActionScript 3.0语言基础 13
2.1 ActionScript 3.0概述 13
2.2使用变量 14
2.2.1变量声明剖析 15
2.2.2常量 16
2.2.3字面值 16
2.3注释代码 17
2.3.1注释的类型 18
2.3.2何时使用注释 19
2.3.3自注释的代码 19
2.4作用域简介 19
2.5数据类型简介 20
2.5.1声明类型 20
2.5.2使用无类型变量 21
2.6运算符 21
2.6.1一元与二元运算符 21
2.6.2运算顺序 22
2.6.3一些常用的运算符 22
2.7使用条件语句做出逻辑选择 24
2.7.1 if语句 24
2.7.2相等运算符 25
2.7.3对其他类型比较的结果进行测试 25
2.7.4 if…else语句 27
2.7.5 switch语句 28
2.7.6条件运算符 29
2.8使用循环重复执行操作 30
2.8.1使用for循环 30
2.8.2使用for…in和for each…in循环 31
2.8.3使用while和do…while循环 32
2.8.4 for循环和while循环的对比 34
2.8.5避免无限循环 34
2.8.6使用break和continue 34
2.9小结 35
第3章 函数与方法 36
3.1调用函数 36
3.2创建自定义函数 37
3.2.1定义函数 37
3.2.2向函数传递参数 38
3.3返回结果 41
3.4匿名函数 43
3.5函数作为对象 43
3.6递归函数 44
3.7小结 46
第4章 面向对象编程 47
4.1理解类 47
4.1.1类可以模拟现实世界 47
4.1.2类包含数据和操作 48
4.1.3类可以划分任务 48
4.1.4类是类型 48
4.1.5类包含程序 49
4.2面向对象编程中的术语 49
4.2.1对象 49
4.2.2类 49
4.2.3实例 50
4.2.4类型 50
4.3封装 50
4.3.1黑盒原则 51
4.3.2封装和多态 51
4.4包:类和函数 51
4.4.1类的唯一性和名称空间 52
4.4.2层次结构 53
4.4.3控制可见性 53
4.4.4包中允许使用的代码 54
4.4.5使用包中的代码 54
4.5使用继承 56
4.5.1使用继承构造代码 59
4.5.2继承、类型和多态 60
4.5.3继承与组合 61
4.5.4阻止继承 63
4.6访问控制属性 64
4.6.1 public和private 64
4.6.2 protected 66
4.6.3 internal 67
4.6.4使用名称空间定制访问控制 68
4.7方法和构造函数 71
4.8属性 72
4.8.1访问器 72
4.8.2避免副作用 74
4.8.3自引用代码 75
4.9使用静态方法和属性 76
4.9.1静态变量 77
4.9.2静态常量 78
4.9.3枚举 80
4.9.4静态方法 80
4.10重写行为 82
4.11设计接口 84
4.12操作类型 89
4.12.1类型兼容和强制转换 89
4.12.2显式类型转换 90
4.12.3确定类型 92
4.13创建动态类 92
4.14小结 93
第5章 验证程序 94
5.1错误简介 94
5.1.1编译时错误与运行时错误 94
5.1.2警告 95
5.1.3从Flash Professional和FlashBuilder获取反馈 95
5.2修复错误 98
5.3小结 100
第Ⅱ部分ActionScript 3.0的核心数据类型 103
第6章 文本、字符串和字符 103
6.1使用字符串字面值 103
6.2与字符串的相互转换 105
6.2.1使用toString()方法 105
6.2.2转换成字符串 105
6.2.3将字符串转换为其他类型 106
6.3合并字符串 107
6.4转换字符串的大小写 107
6.5使用字符串中的单个字符 108
6.5.1获取字符串中字符的个数 108
6.5.2获取特定的字符 109
6.5.3将字符转换为字符代码 109
6.6在字符串中执行查找 109
6.6.1通过子字符串查找 110
6.6.2 使用正则表达式进行查找 110
6.7字符串分解 111
6.8字符串编码和国际文本 111
6.9小结 112
第7章 数值、数学和日期 113
7.1理解数值类型 113
7.1.1数值集 113
7.1.2表示数值 114
7.1.3数值的数字表示 114
7.2在ActionScript中使用数值 116
7.2.1 Number 116
7.2.2 int 117
7.2.3 uint 117
7.2.4字面值 117
7.2.5边界情况 118
7.3操作数值 119
7.3.1数值转换 119
7.3.2字符串转换 120
7.4执行算术运算 121
7.5执行三角计算 122
7.6生成随机数 124
7.7操作日期和时间 125
7.7.1创建日期 125
7.7.2纪元时间 126
7.7.3时区 127
7.7.4访问并修改日期 128
7.7.5日期运算 129
7.7.6执行时间 129
7.7.7格式化日期 129
7.8小结 130
第8章 数组 131
8.1数组基础知识 131
8.1.1使用数组构造函数 132
8.1.2通过使用数组文本创建数组 132
8.1.3引用数组中的值 133
8.1.4在数组中查找数据项编号 133
8.2将数组转换为字符串 134
8.3在数组中添加并删除数据项 134
8.3.1使用concat()向数组末尾添加值 134
8.3.2应用堆栈操作push() 和pop() 135
8.3.3使用队列操作shift() 和unshift() 136
8.4截取、拼接和切割 137
8.4.1使用splice()插入和删除值 137
8.4.2使用slice0与数组子集协调 137
8.5在数组中循环访问数据项 138
8.5.1使用for循环 138
8.5.2使用for each…in循环 138
8.5.3使用forEach()方法 139
8.6搜索元素 140
8.7重新排序数组 140
8.7.1使用排序函数 140
8.7.2使用Reverse()翻转数组顺序 143
8.8把操作应用于数组的全部元素 144
8.8.1使用every()、 some()和filter()进行条件处理 144
8.8.2使用map()方法获得结果 146
8.9数组的替换选项 146
8.9.1关联数组 146
8.9.2多维数组 147
8.10数组的惊人属性 149
8.11小结 149
第9章 向量 150
9.1向量基础 150
9.1.1需要另一种数据类型的原因 151
9.1.2数组:比需要的功能更多 152
9.1.3向量:有效益的数组 152
9.1.4固定大小的向量 155
9.2通用和参数化的类型 155
9.2.1泛型向量 156
9.2.2非泛型向量 157
9.3向量的泛型方法 159
9.4创建并转换向量 161
9.4.1向量文本 161
9.4.2转换向量类型 161
9.4.3将向量转换为数组 162
9.5小结 162
第10章 对象和字典 164
10.1使用Object 164
10.1.1动态类 164
10.1.2创建对象 165
10.1.3访问对象属性 165
10.1.4 toString()方法 166
10.2将对象和字典用做关联数组 166
10.2.1比较数组、对象和字典 167
10.2.2测试存在性 168
10.2.3删除属性 169
10.2.4迭代 170
10.3在命名参数中使用对象 170
10.4将对象用做嵌套数据 171
10.4.1将XML用做对象 171
10.4.2 JSON 172
10.5小结 172
第11章XML和E4X 173
11.1 ActionScript中的XML 173
11.1.1 XML引用 173
11.1.2 E4X引用 174
11.1.3 XML文本 174
11.1.4 E4X运算符和语法简介 176
11.1.5遗留XML处理 177
11.2查询XML 177
11.2.1子坐标轴 177
11.2.2通配符运算符 179
11.2.3索引元素 179
11.2.4特性坐标轴 180
11.2.5文本坐标轴 181
11.2.6后代坐标轴 181
11.2.7父坐标轴 182
11.2.8自定义筛选器坐标轴 183
11.2.9快速引用 184
11.3修改XML 184
11.3.1插入节点 185
11.3.2删除节点和特性 188
11.3.3复制XML 189
11.3.4替换节点 189
11.4转换字符串 190
11.4.1将字符串转换为XML 190
11.4.2将XML转换为字符串 191
11.5从外部源中加载XML数据 193
11.6收集有关XML节点的元信息 194
11.6.1查找节点类型 194
11.6.2确定节点中内容的类型 195
11.7使用名称空间 195
11.7.1在ActionScript中创建XML名称空间 196
11.7.2查询名称空间化的XML节点 198
11.7.3查询名称空间中的XML 202
11.7.4附加的名称空间操作 202
11.8设置XML选项 203
11.9小结 203
第12章 正则表达式 205
12.1正则表达式简介 205
12.2编写正则表达式 206
12.3应用正则表达式 206
12.3.1 String方法和RegExp方法 206
12.3.2测试 207
12.3.3定位 207
12.3.4识别 209
12.3.5提取 210
12.3.6替换 211
12.3.7拆分 213
12.4构造表达式 213
12.4.1标准字符 214
12.4.2圆点字符 214
12.4.3转义字符 214
12.4.4元字符和元序列释义 215
12.4.5字符类 215
12.4.6限定符 216
12.4.7锚点和边界 217
12.4.8替换 219
12.4.9组 219
12.5正则表达式标志 220
12.5.1全局 220
12.5.2忽略大小写 220
12.5.3多行 221
12.5.4 Dotall 222
12.5.5扩展 222
12.6构造高级表达式 223
12.6.1贪婪和延迟匹配 223
12.6.2反向引用 224
12.6.3非捕获组和查找 225
12.6.4命名组 226
12.6.5需要考虑的国际因素 227
12.7使用RegExp类 227
12.7.1使用字符串操作构建动态表达式 227
12.7.2 RegExp公共属性 228
12.8小结 228
第13章 二进制数据和字节数组 229
13.1二进制概念 229
13.2位运算和运算符 232
13.2.1基本运算 232
13.2.2移位 232
13.2.3按位逻辑 233
13.3 ActionScript中的二进制类型 235
13.4使用字节数组 236
13.4.1创建字节数组 236
13.4.2编写数据 236
13.4.3读取数据 236
13.4.4压缩和解压缩 237
13.5字节数组的常见用途 237
13.5.1加载图像 237
13.5.2复制对象 238
13.6小结 239
第Ⅲ部分 显示列表 243
第14章 使用显示列表进行可视化编程 243
14.1显示列表和显示对象简介 244
14.1.1显示列表的结构 244
14.1.2坐标空间 245
14.1.3操作显示列表 246
14.2显示对象类 249
14.2.1 DisplayObject 249
14.2.2 InteractiveObjec 252
14.2.3 DisplayObjectContainer 252
14.2.4 Shape 253
14.2.5 Bitmap 253
14.2.6 Video 253
14.2.7 AVM1Movie 253
14.2.8 SimpleButton 253
14.2.9 TextField 254
14.2.10 Sprit 254
14.2.11 MovieClip 254
14.2.12 Loader 254
14.2.13 Stage 254
14.3几何类 258
14.3.1点 258
14.3.2矩形 259
14.4使用显示列表 260
14.4.1拖放和命中测试 260
14.4.2嵌套和累积转换 262
14.4.3全屏和舞台大小调整 263
14.5渲染和性能 264
14.5.1舞台大小和脏矩形 265
14.5.2显示对象的数量 265
14.5.3透明度、混合模式、掩码和滤镜 265
14.5.4文本 265
14.5.5位图、向量和位图缓存 266
14.5.6关于渲染 266
14.6小结 266
第15章 使用三维空间 268
15.1 ActionScript 3.0中的3D 268
15.1.1 3D坐标系统 270
15.1.2专业版Flash中的3D 271
15.1.3 3D显示对象的局限性 271
15.2再论DisplayObject 272
15.2.1再论几何类 275
15.2.2 3D中的鼠标和点转换 277
15.3修改投影 280
15.4软件3D库 283
15.5小结 284
第16章 在专业版Flash中使用DisplayObject 285
16.1舞台、元件和库 285
16.1.1创建元件 285
16.1.2命名实例 286
16.1.3嵌套实例 287
16.1.4将元件与类相关联 287
16.1.5编写相关类 288
16.1.6非图形元件类型 289
16.2导出和使用资源 289
16.2.1使用SWC中的资源 290
16.2.2使用SWF中的资源 290
16.3小结 291
第17章 文本、样式和字体 292
17.1 TextField简介 292
17.1.1创建一个新的TextField 293
17.1.2添加并替换文本 293
17.1.3设置TextField的大小 293
17.1.4设置TextField的缩放和旋转 295
17.1.5文本换行 295
17.1.6防止用户选择 296
17.1.7显示多语言文本和符号 296
17.2使用HTML和CSS的文本 297
17.2.1 TextField中的HTML支持 297
17.2.2向带有〈img〉的TextField中添加图像或者SWF文件 298
17.2.3受支持的CSS属性 298
17.2.4样式表对象和CSS分析 300
17.3背景和边界处理 301
17.4 TextFormat的样式文本 301
17.4.1对齐 303
17.4.2文本块缩进 303
17.4.3粗体 303
17.4.4项目符号 303
17.4.5颜色 303
17.4.6字体 304
17.4.7缩进 304
17.4.8斜体 304
17.4.9行距 304
17.4.10字母间距 304
17.4.11左页边距 304
17.4.12右页边距 304
17.4.13字号 305
17.4.14制表位 305
17.4.15 目标 305
17.4.16下划线 305
17.4.17 url 306
17.5输入TextField 306
17.5.1 3种文本字段 306
17.5.2在输入字段中生成TextField 307
17.5.3限制用户输入 307
17.5.4可以使用制表符的输入文本字段 309
17.5.5密码文本字段 309
17.6与TextField事件交互 309
17.6.1 focusln和focusOut事件 309
17.6.2文本输入事件 311
17.6.3链接事件 314
17.6.4滚动事件 315
17.7交互式排印 315
17.7.1行文本和段落文本 315
17.7.2按照位置查找文本 317
17.7.3定位并度量文本 317
17.7.4滚动文本 320
17.8字体 321
17.8.1设备字体和嵌入字体 321
17.8.2管理活动字体和字体对象 323
17.8.3嵌入字体 323
17.8.4动态加载字体 325
17.8.5使用嵌入的字体 325
17.8.6反失真 326
17.9小结 327
第18章 高级文本布局 328
18.1理解高级文本控件 328
18.1.1开发工具中的高级文本控件 329
18.1.2为什么有两个引擎 330
18.1.3目的 330
18.2 Flash Text Engine 330
18.3文本布局框架 333
18.3.1存储内容并使用模型进行格式化 334
18.3.2使用控制器布局文本 335
18.3.3文本布局标记 340
18.3.4可用的格式选项 345
18.3.5编辑功能 345
18.3.6撤消和重做历史 347
18.3.7可编程编辑 348
18.3.8流和容器配置 352
18.3.9 TextField适配器类 352
18.4字体回顾 352
18.4.1嵌入CFF字体 353
18.4.2字体查找 354
18.5小结 355
第19章 打印 356
19.1 Flash中打印的原因 356
19.2控制Flash中的打印机输出 357
19.2.1介绍PrintJob类 357
19.2.2发送打印请求 357
19.2.3确定打印目标以及格式选项 358
19.2.4 Flash打印输出可能存在的问题 360
19.3向应用程序中添加打印功能 360
19.4小结 363
第Ⅳ部分 事件驱动程序设计 367
第20章 事件和事件流 367
20.1事件简介 367
20.1.1星期六早晨事件 367
20.1.2事件术语 369
20.2 EventDispatcher类 370
20.2.1使用EventDispatcher 370
20.2.2通过复合使用EventDispatcher 374
20.3使用Event对象 375
20.4添加并删除事件侦听器 376
20.5事件流 378
20.5.1事件流阶段 379
20.5.2操作中的事件流 381
20.6阻止默认行为 383
20.7小结 383
第21章 与鼠标和键盘交互 385
21.1鼠标和键盘事件处理 386
21.1.1查找目标 386
21.1.2冒泡和嵌套剪辑 387
21.1.3侦听所有事件 388
21.2鼠标交互 388
21.2.1单击 389
21.2.2按钮模式和链接手形 390
21.2.3复杂的单击 391
21.2.4滚动更新 393
21.2.5拖动 395
21.2.6位置跟踪和光标 396
21.2.7阻止所有鼠标输入 399
21.2.8鼠标滚轮 401
21.3键盘交互 401
21.3.1解释键盘按键 402
21.3.2修改键 404
21.3.3相关事件 404
21.3.4 IME 404
21.4焦点 405
21.4.1查找或者设置当前的焦点 405
21.4.2焦点事件 407
21.4.3使用Tab键切换焦点 408
21.4.4焦点矩形 408
21.5上下文菜单 409
21.5.1创建并设置上下文菜单 409
21.5.2自定义默认项 410
21.5.3添加自定义项 411
21.6小结 413
第22章 计时器和时间驱动程序设计 414
22.1计时器基础知识 414
22.1.1创建计时器 415
22.1.2侦听计时器事件 415
22.1.3启动、停止并重置计时器 416
22.2处理计时器事件 417
22.3延迟函数的执行 418
22.4创建世界时钟 419
22.5输入帧事件 421
22.6其他时间相关函数 421
22.6.1 getTimer() 421
22.6.2 setTimeout() 422
22.6.3 setInterval() 422
22.6.4 clearInterval() 422
22.7线程简述 422
22.8小结 423
第23章 多点触控和加速计输入 424
23.1为受众制订计划 424
23.2使用多点触控 425
23.2.1触控模式 427
23.2.2笔势模式 431
23.2.3与触控有关的方法 434
23.3使用加速计 435
23.4其他传感器 436
23.5小结 436
第Ⅴ部分 错误处理 441
第24章 错误和异常 441
24.1表示失败的方法 441
24.2理解异常 442
24.2.1抛出异常 443
24.2.2使用Try和Catch捕获异常 443
24.2.3异常数据流 444
24.2.4未捕获的异常 447
24.2.5 finally子句 447
24.2.6重新抛出异常 448
24.3 Flash Player产生的错误 448
24.4自定义异常 450
24.5处理异步错误 451
24.6捕获未处理的事件 452
24.6小结 452
第25章 使用AVM2调试器 454
25.1调试器简介 454
25.2启动调试器 454
25.2.1启动并停止Flash专业版调试器 455
25.2.2启动并停止Flash Builder调试器 456
25.2.3调试器比较 457
25.3控制执行 458
25.3.1在未捕获异常处终止 458
25.3.2在断点处停止 459
25.3.3按照需求终止 460
25.4幕后揭秘 460
25.4.1解释Variable面板 461
25.4.2 Flash Builder的Variable 面板和监视 462
25.5通过代码导航 462
25.5.1继续 462
25.5.2调用堆栈 463
25.5.3单步执行 464
25.5.4单步跳过 465
25.5.5逐步跳出 465
25.6调试一个简单的示例 465
25.7有效使用调试器 467
25.8小结 468
第26章 使应用程序具有容错性 469
26.1制订策略 469
26.2确定要处理的错误类型 469
26.3分类失败 470
26.4用日志记录错误 471
26.5通知用户 473
26.6分解样式示例 473
26.7小结 475
第Ⅵ部分 外部数据 479
第27章 联网基础与Flash Player的安全性 479
27.1 HTTP简介 480
27.2 URL请求简介 482
27.3导航到某个网页 482
27.4加载器 483
27.4.1图形文件格式 484
27.4.2获取加载进程的信息 484
27.4.3获取已加载内容 488
27.4.4加载外部SWF 490
27.4.5使用加载器解释内存中的文件 494
27.5 URLLoader 495
27.5.1加载文件 495
27.5.2加载与取消加载 495
27.5.3跟踪加载进程 496
27.5.4加载不同格式的文件 496
27.6通过URLRequest发送变量 500
27.6.1通过URLLoader发送请求与获取响应 501
27.6.2通过sendToUrl()发送请求 502
27.7理解Flash Player的安全性 502
27.8小结 504
第28章 与远程服务进行通信 506
28.1基于HTTP的Web服务 507
28.1.1 REST 508
28.1.2 SOAP 509
28.1.3 XML-RPC 510
28.2套接字服务 510
28.3 Flash Remoting 513
28.3.1 NetConnection 514
28.3.2 Responder 515
28.4小结 515
第29章 使用SharedObject存储和发送数据 517
29.1持久存储方式对比 517
29.1.1在本地共享对象中存储信息 518
29.1.2在本地文件中存储信息 518
29.1.3在服务器上存储信息 518
29.1.4在浏览器中存储信息 518
29.2共享对象的适用场景 519
29.3共享对象与远程通信 520
29.4使用SharedObj ect 520
29.4.1获取SharedObject 520
29.4.2对SharedObject进行读取和写入 521
29.4.3删除SharedObject中的信息 522
29.4.4保存信息 522
29.5在SWF间共享信息 522
29.5.1使用安全连接 524
29.5.2与ActionScript 1.0和2.0SWF共享信息 525
29.6应对大小限制 525
29.6.1用户设置 525
29.6.2用户请求 526
29.6.3尽早请求空间 526
29.6.4事先请求空间 527
29.6.5使用flush()方法 527
29.6.6查看已用空间 528
29.7存储自定义类 528
29.7.1原样存储自定义类 528
29.7.2创建自序列化类 530
29.8小结 532
第30章 文件访问 533
30.1文件API的功能 533
30.2 FileReference简介 534
30.2.1选择文件 534
30.2.2确定文件何时被选中 535
30.2.3获取文件属性 536
30.3上传文件 537
30.4在服务器端处理文件上传请求 537
30.5将文件下载到磁盘 540
30.6将文件加载到内存 542
30.7将数据存储到磁盘 543
30.8小结 546
第Ⅶ部分 声音和视频 549
第31章 播放和生成声音 549
31.1声音系统简介 549
31.2 Sound对象简介 550
31.2.1从外部文件或URL中加载声音 551
31.2.2缓冲声音流 551
31.2.3在SWF中嵌入声音 552
31.3控制声音播放 554
31.3.1播放和停止声音 554
31.3.2设置播放声音的起始位置和循环次数 555
31.3.3快进、快退、暂停和重新播放声音 556
31.4应用声音转换 558
31.5声音元数据处理 558
31.5.1检查加载进度 558
31.5.2获取歌曲的ID3数据 559
31.6音频采样 560
31.7音频提取 563
31.8音频合成 564
31.9检测音频的功能 565
31.10小结 566
第32章 播放视频 567
32.1视频和Flash平台 567
32.1.1视频源 568
32.1.2编解码器和容器格式 569
32.1.3元信息 570
32.1.4分发方式 571
32.1.5编码 573
32.1.6播放 574
32.2实现一个视频播放器 576
32.2.1 Video类 576
32.2.2 NetConnection类 576
32.2.3 NetStream类 577
32.2.4集成 579
32.3小结 583
第33章 捕获声音和视频 584
33.1使用摄像头输入视频 584
33.1.1获取Camera对象 584
33.1.2通过Camera查看视频 585
33.1.3修改Camera的设置 586
33.1.4检测Camera的行为 588
33.1.5捕获和分析Camera 数据 588
33.2使用麦克风输入声音 588
33.2.1获取Microphone对象 588
33.2.2播放Microphone的输入 589
33.2.3修改Microphone的设置 589
33.2.4检测Microphone的活动 591
33.2.5捕获和分析Microphone的数据 592
33.3 Flash媒体服务器 593
33.4小结 594
第Ⅷ部分 图形程序设计与动画 597
第34章 几何和颜色变换 597
34.1 DisplayObject对象和Transform对象 597
34.2 2D仿射变换 598
34.2.1矩阵和坐标 599
34.2.2各种仿射变换及其矩阵 601
34.2.3 Matrix类 602
34.3颜色变换 606
34.3.1颜色填充 606
34.3.2颜色变换涉及的数学知识 606
34.3.3重置和合并颜色变换 608
34.3.4应用颜色变换 608
34.4 3D变换 609
34.4.1 3D基本概念回顾 610
34.4.2 3D仿射变换 613
34.4.3投影变换 614
34.4.4 ActionScript中的3D变换 616
34.5小结 623
第35章 编程绘制矢量图形 624
35.1概述 624
35.2绘图基础 626
35.2.1移动画笔 626
35.2.2绘制直线段 627
35.2.3绘制曲线 631
35.2.4填充路径 634
35.2.5清除图形 636
35.3设置绘制风格 636
35.3.1纯色 636
35.3.2渐变 641
35.3.3位图 645
35.3.4着色器 647
35.4绘图原语 649
35.4.1矩形和正方形 649
35.4.2圆形和椭圆 649
35.4.3圆角矩形 650
35.5示例:一个绘图应用程序 651
35.6批量绘制 655
35.6.1绘制路径 656
35.6.2将路径存储于命令中 660
35.6.3批量执行普通绘制命令 662
35.6.4复制和粘贴图形 663
35.7绘制3D图形 664
35.8小结 664
第36章 编程绘制位图图形 666
36.1位图及其应用 666
36.2创建和显示位图 668
36.2.1创建空的BitmapData实例 668
36.2.2创建内嵌资源的实例 669
36.2.3显示位图 669
36.2.4位图质量 670
36.2.5释放位图数据 670
36.3捕获和复制位图 670
36.3.1从显示对象中复制 670
36.3.2从BitmapData对象中复制 672
36.4像素级访问 679
36.4.1访问单个像素 679
36.4.2访问内存中的位图数据 681
36.5操作颜色 683
36.5.1使用纯色填充 683
36.5.2通过倾倒填充替换颜色 684
36.5.3颜色变换 684
36.5.4获取柱状图 686
36.5.5通过阈值替换颜色 687
36.5.6通过调色板映射重新映射颜色 689
36.5.7检测纯色区域 691
36.6位图效果 693
36.6.1应用滤镜 693
36.6.2滚动位图 694
36.6.3使用像素溶解 694
36.6.4添加噪声 694
36.7小结 698
第37章 应用滤镜 700
37.1滤镜简介 700
37.1.1对显示对象应用滤镜 701
37.1.2多个滤镜 702
37.2模糊滤镜 702
37.3投影滤镜 703
37.4斜角滤镜 705
37.5渐变斜角滤镜 707
37.6发光滤镜 710
37.7渐变发光滤镜 713
37.8颜色效果 714
37.8.1亮度 715
37.8.2色彩 716
37.8.3负片 718
37.8.4对比度 719
37.8.5转变为灰度 720
37.8.6饱和度 721
37.9卷积滤镜 722
37.10置换图滤镜 726
37.11着色器 730
37.12小结 730
第38章 使用Pixel Bender编写着色器 731
38.1 Pixel Bender简介 732
38.1.1像素着色器应用场景 732
38.1.2像素着色器的工作原理 733
38.1.3集成Pixel Bender和FlashPlayer 735
38.2 Pixel Bender内核语言 736
38.2.1语法 736
38.2.2内核结构 737
38.2.3基本控制结构 740
38.2.4类型 740
38.2.5函数 743
38.3与Pixel Bender内核进行交互 745
38.3.1加载字节码 745
38.3.2在ActionScript中运行内核 746
38.3.3操作内核 747
38.3.4 ActionScript中的一个基本着色器 748
38.3.5 ActionScript中的效果着色器 749
38.4混合其他数据 753
38.4.1为Pixel Bender准备数据 754
38.4.2访问内核中的数据 755
38.4.3执行和监控ShaderJob 755
38.4.4双着色器实验 756
38.5小结 761
第39章 编写动画脚本 762
39.1理解Flash Player和动画 762
39.1.1帧速率 762
39.1.2 Flash Player操作 763
39.2用代码实现动画 764
39.2.1根据时间实现动画 764
39.2.2根据帧实现动画 766
39.2.3动画和速度 766
39.3用Flash Professional实现动画 768
39.3.1回顾:补间、关键帧、缓动 769
39.3.2运动XML简介 769
39.3.3使用Flash Motion包 776
39.4使用Flex实现动画 778
39.5选择第三方的动画工具包 778
39.6小结 779
第40章3D高级主题 780
40.1游戏计划 781
40.2投影一批点 781
40.3三角形条带 786
40.4背面剔除 788
40.5纹理映射 789
40.6 Z排序、阴影和其他主题 794
40.6.1多边形Z排序 794
40.6.2阴影和灯光简介 797
40.7小结 798
第Ⅸ部分Flash的具体应用 803
第41章 全球化、可访问性和颜色校正 803
41.1全球化和本地化 803
41.1.1确定区域 804
41.1.2格式化数值 809
41.1.3格式化日期 810
41.1.4格式化货币 811
41.1.5本地化字符串比较 812
41.1.6本地化大小写 814
41.1.7错误处理 814
41.2可访问性 815
41.3颜色校正 816
41.4小结 817
第42章在Web上部署Flash 818
42.1在页面中嵌入Flash内容 818
42.2使用SWFObject嵌入Flash内容 819
42.3启用Flash Player选项 821
42.3.1透明Flash 821
42.3.2硬件加速 822
42.3.3全屏Flash 822
42.4向SWF传递变量 822
42.5自动升级Flash Player 824
42.6小结 824
第43章与JavaScript对接 825
43.1使用ExternalInterface 825
43.1.1在Flash中调用JavaScript函数 826
43.1.2在JavaScript中调用ActionScript函数 827
43.1.3 JavaScript交互和Flash Player安全性 827
43.2使用ExternalInterface创建混合应用程序 828
43.3小结 830
第44章Flash应用程序之间的本地连接 831
44.1本地连接及其用途 831
44.2实现本地连接 832
44.2.1发送应用程序 832
44.2.2接收应用程序 834
44.3本地连接和安全策略 835
44.3.1在发送程序中指定域 836
44.3.2从通道名中删除域 836
44.3.3允许接收应用程序建立跨域本地连接 836
44.4示例:跟随鼠标移动 837
44.5小结 838