第1章 初识Macromedia Flash 1
1.1 开发环境介绍 1
1.1.1 Tools面板 1
1.1.2 Properties面板 3
1.1.3 时间线 3
1.1.4 关键帧和动画 3
1.2 关于库和符号 4
1.2.1 使用Button符号 5
1.2.2 使用Movie Clip符号 7
1.2.3 关于图层、深度和级别 7
1.3 设置脚本环境 8
1.3.1 Actions面板简介 8
1.3.2 探讨ActionScript参数设置 9
1.3.3 探讨Auto Format参数设置 12
1.3.4 发布项目 13
1.3.5 用于检测Flash播放器的选项 16
1.4 小结 17
1.5 练习 17
第2章 初识ActionScript 2.0 19
2.1 理解语句 19
2.1.1 使用简单的语句 19
2.1.2 使用复合语句 20
2.2 理解运算符 20
2.2.1 使用运算符优先级 22
2.2.2 探讨运算符关联性 22
2.2.3 理解常用运算符 23
2.3 使用空白 24
2.4 使用注释 25
2.5 介绍变量 26
2.5.1 将数据赋予变量 27
2.5.2 查看变量的内容 27
2.5.3 把数据从一个变量传递到另一个变量 28
2.5.4 命名变量 28
2.5.5 介绍常量 29
2.5.6 使用强变量类型 30
2.5.7 探讨数据类型 33
2.5.8 点语法 37
2.5.9 识别特殊变量和关键字 38
2.6 处理数据的集合 40
2.6.1 理解数组 40
2.6.2 探讨联合数组和对象 46
2.7 小结 50
2.8 习题 51
第3章 了解ActionScript表达式和循环 52
3.1 决策 52
3.1.1 表达式 53
3.1.2 构建表达式 54
3.1.3 使用if..then..else 58
3.1.4 使用switch..case 59
3.2 了解循环 65
3.2.1 for循环 65
3.2.2 for..in循环 67
3.2.3 while循环 69
3.2.4 do..while循环 70
3.2.5 处理循环错误 74
3.3 小结 77
3.4 习题 78
4.1 函数 80
第4章 探讨ActionScript函数和作用域 80
4.1.1 函数的工作状况 82
4.1.2 一种替代语法 84
4.1.3 作为参数传递函数 85
4.2 变量作用域 89
4.2.1 管理变量作用域 91
4.2.2 副作用 93
4.3 小结 95
4.4 习题 95
第5章 开始编码 97
5.1 面向对象编程简介 97
5.1.1 定义面向对象编程 97
5.1.2 面向对象编程的目标 102
5.2.1 了解变量命名 103
5.2 编码最佳实践 103
5.2.2 变量类型化 106
5.2.3 注释 111
5.2.4 格式化代码 113
5.2.5 理解变量作用域 114
5.2.6 访问另一个时间线中的变量 117
5.2.7 创建自己的函数 124
5.3 小结 135
5.4 习题 136
第6章 建立Flash项目 138
6.1 建立库 138
6.2 处理位图图像 139
6.2.1 保持图像在桌面上有组织 139
6.2.2 保持图像在库中有组织 139
6.2.3 把图像嵌入到电影剪辑中 140
6.3 在电影剪辑内嵌套各个部分 142
6.3.1 使用关键帧管理应用程序状态 143
6.3.2 把代码保存在外部文件中 145
6.3.3 使用脚本管理应用程序状态 147
6.4 小结 151
6.5 习题 151
第7章 控制电影剪辑 152
7.1 呈现电影剪辑 152
7.1.1 MovieClip类方法 152
7.1.2 MovieClip类属性 167
7.1.3 MovieClip类事件 169
7.2 动态创建电影剪辑 170
7.3 从库中附加电影剪辑 174
7.4 加载外部电影 176
7.4.1 把电影加载进级别中 177
7.4.2 把媒体加载进现有的电影剪辑中 178
7.4.3 完全限定的URL、绝对URL和相对URL 179
7.5 把电影剪辑用作遮罩 183
7.6 改进电影剪辑性能 188
7.6.1 位图缓存 188
7.6.2 透明度 189
7.6.3 滤镜和混合模式 189
7.6.4 全屏幕 190
7.7 小结 190
7.8 习题 190
第8章 预加载电影 192
8.1 使用自定义的预加载器 192
8.2 利用onEnterFrame()与setInterval()轮询 196
8.3 理解MovieClipLoader类 198
8.3.1 MovieClipLoader类事件 198
8.3.2 MovieClipLoader类方法 199
8.3.3 实现MovieClipLoader类 202
8.4.1 Loader组件的方法、属性和事件 205
8.4 研究Loader和ProgressBar组件 205
8.4.2 ProgressBar组件的方法、属性和事件 206
8.4.3 实现Loader和ProgressBar组件 207
8.5 使用预加载器的策略 210
8.5.1 整体式电影方法 210
8.5.2 分块式电影方法 214
8.6 小结 217
8.7 习题 218
第9章 使用组件 220
9.1 版本2.0的新特性 220
9.2 探讨组件 221
9.2.1 数据组件 221
9.2.2 FLVPlayback组件和FLV Playback Custom UI组件 221
9.2.4 用户界面组件 223
9.2.3 用于Flash播放器版本6和7的媒体组件 223
9.3 手动放置组件 225
9.4 利用脚本把组件放到舞台上 227
9.5 用脚本处理组件 232
9.6 小结 235
9.7 练习 235
第10章 与用户交互 237
10.1 处理事件 237
10.1.1 创建侦听器对象 237
10.1.2 创建侦听器对象的变体 244
10.1.3 创建一个侦听器函数 245
10.1.4 应该使用哪种侦听器技术 247
10.2 把多个侦听器附加到多个组件上 252
10.2.2 处理来自多个源的事件 253
10.2.1 组织侦听器 253
10.3 手动调用一个组件中的事件 259
10.4 小结 260
10.5 习题 261
第11章 控制组件 262
11.1 介绍Component Inspector面板 262
11.2 使用Bindings选项卡在组件之间创建数据绑定 263
11.3 把XML文件用作数据源 265
11.4 控制组件外观 269
11.4.1 使用setStyle()更改组件样式 269
11.4.2 设置组件外观 277
11.5 小结 281
11.6 习题 281
12.1.1 编译时错误 282
12.1.2 逻辑错误 282
12.1 错误的类型 282
第12章 调试 282
12.2 开发调试 288
12.2.1 使代码可读 289
12.2.2 开发小代码块 289
12.2.3 使用短小的函数 290
12.3 调试的科学 290
12.3.1 开发一种理论 290
12.3.2 运行一个实验 292
12.3.3 分析结果 298
12.4 小结 299
12.5 习题 300
第13章 处理矢量图形 303
13.1 使用绘图API 303
13.2.1 lineStyle() 304
13.2 利用ActionScript绘制矢量的工具 304
13.2.2 beginFill() 305
13.2.3 beginBitmapFill() 306
13.2.4 beginGradientFill() 306
13.2.5 endFill() 307
13.2.6 moveTo() 307
13.2.7 lineTo() 308
13.2.8 curveTo() 308
13.2.9 clear() 308
13.3 利用ActionScript绘制矢量 308
13.4 Matrix对象 317
13.5 小结 317
13.6 习题 318
14.1 DropShadowFilter 319
第14章 应用滤镜效果 319
14.2 BlurFilter 321
14.3 GlowFilter 321
14.4 BevelFilter 322
14.5 GradientGlowFilter 323
14.6 GradientBevelFilter 324
14.7 ConvolutionFilter 324
14.8 ColorMatrixFilter 328
14.9 DisplacementMapFilter 330
14.10 克隆滤镜 331
14.11 应用多个滤镜 331
14.12 应用混合模式 336
14.13 小结 337
14.14 习题 338
15.1 Bitmap对象的方法 339
第15章 直接处理位图数据 339
15.1.1 applyFilter() 340
15.1.2 clone() 340
15.1.3 colorTransform() 340
15.1.4 copyChannel() 341
15.1.5 copyPixels() 341
15.1.6 dispose() 342
15.1.7 draw() 342
15.1.8 fillRect() 342
15.1.9 floodFill() 343
15.1.10 generateFilterRect() 343
15.1.11 getColorBoundsRect() 343
15.1.12 getPixel() 344
15.1.13 getPixel32() 344
15.1.14 hitTest() 344
15.1.16 merge() 345
15.1.15 loadBitmap() 345
15.1.17 noise() 346
15.1.18 paletteMap() 346
15.1.19 perlinNoise() 347
15.1.20 pixelDissolve() 348
15.1.21 scroll() 349
15.1.22 setPixel() 349
15.1.23 setPixel32() 349
15.1.24 threshold() 349
15.2 bitmapData对象的属性 350
15.3 将电影剪辑转换成位图图像 351
15.4 操纵位图数据 351
15.5 小结 353
15.6 习题 353
16.2 使用关键帧创建动画 354
16.1 脚本式动画与非脚本式动画 354
第16章 把ActionScript用于动画 354
16.3 使用ActionScript创建动画 356
16.3.1 使用onEnterFrame()移动电影剪辑 356
16.3.2 使用setInterval()移动电影剪辑 359
16.4 基于帧的动画与基于时间的动画 361
16.4.1 在动画上移动帧速率的作用 361
16.4.2 应该使用哪一种技术 364
16.4.3 选择帧速率或更新时间间隔 364
16.5 利用电影剪辑创建动画 365
16.5.1 制作多个电影剪辑的动画 366
16.5.2 添加随机行为 367
16.5.3 介绍舒缓和加速 372
16.6 小结 387
16.7 习题 387
17.1 Tween类 388
第17章 自动化过渡效果 388
17.1.1 绝对过渡与相对过渡 389
17.1.2 内置的舒缓类和方法 389
17.1.3 Tween类方法 390
17.1.4 Tween类属性和事件 395
17.1.5 并行播放过渡 399
17.1.6 按顺序播放过渡 402
17.2 利用绘图API创建动画 409
17.3 小结 417
17.4 习题 417
第18章 处理文本 418
18.1 用ActionScript创建文本框 418
18.1.1 文本框实例名与文本框变量名 418
18.1.3 自由地创建文本框 419
18.1.2 系统字体和嵌入式字体 419
18.2 处理文本显示属性 421
18.2.1 antiAliasType 421
18.2.2 sharpness 422
18.2.3 thickness 422
18.3 富文本格式化选项 424
18.3.1 使用TextFormat 425
18.3.2 Flash 8新增的文本格式选项 425
18.3.3 关于setTextFormat()的注释 431
18.4 显示HTML 431
18.5 HTML文本框中的图像和SWF支持 433
18.6 字体支持 436
18.7 超链接和ASFunction方法 438
18.8.2 将StyleSheet与文本框相关联 439
18.8.1 创建层叠样式表对象 439
18.8 使用层叠样式表 439
18.8.3 直接在StyleSheet对象上定义样式 441
18.9 如何定义标签、类和属性 444
18.10 结合使用CSS与XML 445
18.11 滚动文本选项 447
18.11.1 使用TextArea组件滚动文本 448
18.11.2 使用ScrollBar组件滚动文本 449
18.12 小结 455
18.13 习题 456
第19章 把ActionScript用于媒体 457
19.1 管理图像 457
19.1.1 智能预加载 458
19.1.2 使用MovieClipLoader预加载图像 459
19.2.1 声音类方法 460
19.2 管理声音 460
19.2.2 声音类事件和属性 461
19.2.3 创建一个声音对象 462
19.2.4 加载库声音 462
19.2.5 加载外部MP3文件 463
19.2.6 流化MP3音频 464
19.2.7 开始、停止和跟踪声音 465
19.2.8 事件声音 467
19.2.9 控制音量、setPan和setTransform 468
19.3 处理麦克风 474
19.3.1 麦克风类方法 475
19.3.2 麦克风类属性和事件 476
19.3.3 麦克风活动 477
19.4 小结 479
19.3.4 netStream 479
19.5 习题 480
第20章 管理视频 481
20.1 术语、技术和质量 481
20.1.1 数据速率 481
20.1.2 逐行视频——HTTP 482
20.1.3 流式视频——Flash Communication Server 482
20.1.4 视频关键帧 482
20.1.5 可变位速率 483
20.1.6 隔行视频 483
20.1.7 帧速率 484
20.2 创建Flash视频 484
20.3 转换视频 484
20.4 加载外部视频 487
20.6 加载外部FLV文件 488
20.5 导出到视频 488
20.6.1 netStream类 489
20.6.2 Video类 490
20.7 控制视频位置 492
20.8 使用视频内的透明度 495
20.9 处理视频质量 497
20.9.1 解块和解环 498
20.9.2 缩放和透明度 499
20.10 使用照相机 499
20.10.1 Camera类的方法、属性和事件 500
20.10.2 创建Camera对象 501
20.10.3 将照相机馈给显示为舞台上的视频 501
20.10.4 有关安全的弹出式考虑事项 506
20.12 习题 507
20.11 小结 507
第21章 数据访问的历史 508
21.1 外部数据和可用性考虑事项 508
21.2 数据等待时间:异步通信 508
21.3 使用LoadVars 509
21.3.1 &号定界的数据 509
21.3.2 LoadVars类方法 510
21.3.3 创建一个LoadVars对象 512
21.3.4 LoadVars事件处理程序 513
21.4 加载和分析原始文本 516
21.5 小结 519
21.6 习题 519
第22章 读取XML 520
22.1 使用内置的XML类 520
22.1.1 把一切都包装在标签内 520
22.1.2 CDATA和字符格式 522
22.2.1 XML类方法 523
22.2 Flash XML类 523
22.2.2 XML事件处理程序 526
22.2.3 ignoreWhite:一个特殊的属性 527
22.3 加载外部XML文件 527
22.4 度量字节数 530
22.4.1 关于安全性和局域性的说明 530
22.4.2 getBytesTotal没有工作! 533
22.5 理解父-子节点关系 534
22.5.1 导航一棵示例节点树 534
22.5.2 使用特性 537
22.6 使用XML套接字连接 538
22.6.1 XMLSocket类中的XML 538
22.6.2 空字节 538
22.6.3 XMLSocket类的方法和事件 539
22.7 sendAndLoad 541
22.8 使用HTTP GET和POST 543
22.8.1 GET和POST之间有着天壤之别 544
22.8.2 怎样知道应该使用哪种方法 544
22.9 使用XML组件 545
22.10 解释跨域安全性 548
22.10.1 理解Flash为什么使用域策略 548
22.10.2 知道何时需要策略文件 549
22.10.3 建立策略文件 550
22.10.4 我提供了Web服务:我想允许任何域访问它! 552
22.10.5 使用垫层和代理 555
22.11 小结 559
22.12 习题 559
第23章 在Macromedia Flash插件与浏览器之间通信 561
23.1 LocalConnection 561
23.1.1 创建一个localConnection对象 562
23.1.2 安全性 565
23.2 利用共享对象在本地存储数据 566
23.2.1 可接受的数据类型 568
23.2.2 把共享对象用作cookie 569
23.2.3 与用户打交道 571
23.2.4 管理磁盘空间 572
23.2.5 共享SharedObject 572
23.3 在启动时利用FlashVars给Flash电影提供数据 573
23.3.1 Flash的Object和Embed标签参数简介 573
23.3.2 添加FlashVars 574
23.3.3 利用JavaScript创建FlashVars 575
23.3.4 通过servlet页面传递FlashVars 577
23.4 小结 578
23.5 习题 578
24.1 更改安全性设置 579
第24章 使用JavaScript 579
24.2 从Flash内调用JavaScript 581
24.2.1 getURL()简介 581
24.2.2 利用嵌套变量创建JavaScript变量 582
24.2.3 考虑局限性 586
24.3 使用fscommand调用JavaScript函数 586
24.4 从JavaScript调用Flash 588
24.5 基本JavaScript方法和变量 590
24.6 使用Flash JavaScript Integration Kit 591
24.6.1 安装集成工具包 591
24.6.2 从ActionScript调用JavaScript函数 592
24.6.3 从JavaScript调用ActionScript函数 593
24.7 使用外部API 596
24.7.1 ExterrnalInterface类方法 596
24.7.2 调用ActionScript函数和方法 599
24.7.3 从ActionScript调用JavaScript函数 602
24.8 打开浏览器窗口 613
24.8.1 使用getURL()创建弹出式窗口 613
24.8.2 使用ExternalInterface创建弹出式窗口 614
24.8.3 调用JavaScript包装器函数 615
24.8.4 定义浏览器窗口参数 616
24.9 小结 619
24.10 习题 619
第25章 上传和下载文件 620
25.1 FileReference类方法 620
25.1.1 使用browse() 620
25.1.2 使用cancel() 621
25.1.3 使用download() 621
25.1.4 使用upload() 622
25.1.5 FileReference类属性 623
25.2 下载文件 623
25.3 上传文件 628
25.4 小结 633
25.5 习题 634
第26章 在Flash插件与操作系统之间通信 635
26.1 使用System对象检索系统信息 635
26.1.1 System对象在播放器版本当中的局限性 637
26.1.2 setClipBoard方法 637
26.2 放映机、Flash可执行程序和其他可执行程序 638
26.2.1 局限性 638
26.2.2 使用fscommand调用放映机函数 638
26.2.3 SDK 640
26.2.4 第三方 640
26.4 习题 641
26.3 小结 641
第27章 创建自定义的类 642
27.1 使用类 642
27.1.1 定义类 642
27.1.2 公共与私有 644
27.1.3 定义构造函数 646
27.1.4 定义方法 650
27.1.5 定义属性 656
27.1.6 添加功能到现有类中 662
27.2 小结 676
27.3 习题 677
附录A 习题答案 680
附录B Flash键盘快捷键 740
B.1 Tools面板 740
B.2.2 Edit菜单 741
B.2.1 File菜单 741
B.2 集成的脚本编辑器快捷键 741
B.2.3 View菜单 742
B.2.4 Tools菜单 742
B.2.5 Control菜单 742
B.3 Actions面板快捷键 742
B.4 绘图IDE快捷键 743
B.4.1 File菜单 743
B.4.2 Edit菜单 744
B.4.3 View菜单 744
B.4.4 Insert菜单 745
B.4.5 Modify菜单 746
B.4.6 Text菜单 747
B.4.7 Control菜单 747
B.4.8 Window菜单 747
B.4.9 Help菜单 748