第1章 认识Flash CS3 1
1.1 Flash的历史 1
1.2 Flash CS3的改进与新增功能 2
1.3 ActionScript介绍 3
1.4 ActionScript 3.0的新增功能 4
1.5 Flash CS3界面概览 6
1.5.1 开始页 6
1.5.2 主界面 7
1.5.3 舞台 7
1.6 系统要求 8
1.7 本章小结 8
第2章 Flash CS3基础 9
2.1 “工具”面板 9
2.2 时间轴、帧和图层 13
2.2.1 时间轴 13
2.2.2 帧和关键帧 14
2.2.3 图层 15
2.3 “动作”面板 17
2.4 其他常用面板 18
2.4.1 “信息”面板 18
2.4.2 “变形”面板 18
2.4.3 “颜色”面板和“样本”面板 19
2.4.4 “对齐”面板 20
2.4.5 “库”面板 20
2.5 创建文本 21
2.5.1 静态文本框 21
2.5.2 动态文本框 21
2.5.3 输入文本框 21
2.6 网格、标尺和辅助线 22
2.6.1 网格 22
2.6.2 标尺 23
2.6.3 辅助线 23
2.7 绘制图形 24
2.8 元件、库和实例 25
2.8.1 创建和编辑元件 25
2.8.2 更改实例属性 27
2.9 滤镜 27
2.10 创建时间轴动画 28
2.11 发布设置 30
2.12 本章小结 32
第3章 ActionScript 3.0基础 33
3.1 变量和操作符 33
3.1.1 变量 33
3.1.2 变量的作用域 34
3.1.3 变量的默认值 35
3.1.4 运算符 36
3.1.5 算术运算符 36
3.1.6 赋值运算符 37
3.1.7 关系运算符 38
3.2 数据类型 38
3.2.1 基本数据类型 38
3.2.2 类型转换 39
3.3 数组与字符串 41
3.3.1 数组的定义 41
3.3.2 数组的访问 42
3.3.3 数组常用函数 43
3.3.4 多维数组 45
3.3.5 字符串 45
3.3.6 创建字符串 46
3.3.7 字符串比较 47
3.3.8 连接字符串 48
3.3.9 字符串的查找和替换 48
3.3.10 字符串转换大小写 50
3.4 条件语句 50
3.4.1 关系运算和逻辑运算 50
3.4.2 if...else语句 51
3.4.3 if...else if语句 51
3.4.4 switch语句 52
3.4.5 ?:操作符 53
3.5 循环控制 53
3.5.1 for语句 53
3.5.2 for...in语句 54
3.5.3 for each...in语句 54
3.5.4 while语句 55
3.5.5 do...while语句 55
3.6 Math对象 55
3.6.1 Math对象简介 56
3.6.2 Math的方法和属性 56
3.7 函数 57
3.7.1 函数的基本概念 57
3.7.2 函数的参数 58
3.7.3 函数的返回值 60
3.7.4 函数的递归调用 60
3.8 小游戏“猜数字” 61
3.8.1 规则设定 61
3.8.2 场景搭建 62
3.8.3 游戏代码 63
3.9 本章小结 67
第4章 面向对象基础 69
4.1 面向对象编程简介 69
4.2 类 70
4.2.1 类的定义 70
4.2.2 类属性 71
4.2.3 构造函数 73
4.3 属性与方法 73
4.3.1 属性与方法的抽象 74
4.3.2 属性和方法的属性 74
4.3.3 属性的访问方法 74
4.3.4 静态成员 75
4.4 接口 76
4.4.1 定义接口 76
4.4.2 实现接口 77
4.5 继承 78
4.5.1 基类和派生类 78
4.5.2 方法的重载 79
4.5.3 不能继承静态属性 80
4.6 实例化对象 80
4.7 小游戏“蜗牛赛跑” 81
4.7.1 游戏设计 81
4.7.2 文档类 82
4.7.3 场景制作 82
4.7.4 代码分析 83
4.8 本章小结 89
第5章 可视对象 91
5.1 显示列表 91
5.1.1 DisplayObject类 92
5.1.2 DisplayObjectContainer类 93
5.1.3 Stage类 95
5.2 MovieClip类 96
5.2.1 控制影片剪辑播放 96
5.2.2 载入外部SWF文件 98
5.3 TextField类 98
5.3.1 静态文本 98
5.3.2 文本操作 99
5.3.3 设置文本格式 100
5.4 点和矩形 103
5.4.1 Point对象 103
5.4.2 Rectangle对象 104
5.5 矩阵 106
5.6 绘图API 107
5.6.1 绘制几何图形 107
5.6.2 绘制直线和曲线 109
5.6.3 渐变笔触和渐变填充 109
5.7 位图处理 112
5.7.1 使用Bitmap类和BitmapData类 112
5.7.2 滚动位图 116
5.8 滤镜 118
5.9 遮罩处理 120
5.10 拼图游戏 122
5.10.1 游戏的场景和设定 122
5.10.2 游戏代码解释 123
5.11 本章小结 128
第6章 事件处理和用户交互 129
6.1 事件处理基础知识 129
6.2 事件对象 130
6.3 事件侦听 131
6.4 鼠标事件 133
6.5 键盘事件 135
6.6 用户交互“我的小飞机” 138
6.7 本章小结 146
第7章 游戏常用事件 147
7.1 移动控制 147
7.2 碰撞检测 152
7.2.1 基本碰撞检测 152
7.2.2 像素级别的碰撞检测 157
7.3 计时器 159
7.4 新建对象事件 163
7.5 销毁事件 166
7.6 血槽、积分和时间 167
7.7 小游戏“接金币” 168
7.7.1 游戏设计 168
7.7.2 场景布局 168
7.7.3 代码分析 170
7.8 本章小结 178
第8章 游戏中的声音 179
8.1 引入声音 179
8.1.1 导入声音文件 179
8.1.2 为按钮添加声音 181
8.1.3 压缩声音 181
8.1.4 加载外部声音文件 183
8.1.5 加载声音流文件 184
8.2 控制声音 185
8.2.1 播放、暂停和停止声音 185
8.2.2 控制音量和声相 185
8.3 高级应用 187
8.3.1 获取ID3信息 187
8.3.2 绘制声音波形 187
8.4 本章小结 189
第9章 人工智能简介 191
9.1 导弹跟踪算法 191
9.1.1 算法分析 191
9.1.2 游戏实例 192
9.2 搜索策略 194
9.2.1 状态空间 194
9.2.2 广度优先搜索 195
9.2.3 深度优先搜索 195
9.2.4 启发式搜索策略 196
9.2.5 A*算法 197
9.3 寻找最短路径 197
9.3.1 算法分析 197
9.3.2 游戏实例 199
9.4 五子棋初级教程 211
9.4.1 算法分析 212
9.4.2 游戏界面 213
9.4.3 代码分析 214
9.4.4 缺点与改进 224
9.5 本章小结 224
第10章 XML 225
10.1 XML基础知识 225
10.2 XML对象和XMLList对象 228
10.3 处理XML 229
10.3.1 访问XML数据 229
10.3.2 访问属性 230
10.3.3 过滤元素 230
10.3.4 添加节点和属性 231
10.3.5 载入外部XML 232
10.4 本章小结 233
第11章 网络游戏基本知识 235
11.1 基本知识和概念 235
11.1.1 Flash游戏现状 235
11.1.2 Flash网络游戏前景 236
11.1.3 重要概念和术语 236
11.2 与外部文件通信 237
11.2.1 与外部本地文件通信 237
11.2.2 与外部远程文件通信 241
11.3 与外部数据交互 241
11.3.1 与外部本地数据交互 241
11.3.2 与外部远程数据交互 242
11.4 Flash Socket入门 245
11.4.1 Socket简介 245
11.4.2 使用Socket读取外部数据的实例 246
11.4.3 XMLSocket类 249
11.5 本章小结 250
第12章 服务端技术 251
12.1 官方的FMS2 251
12.1.1 FMS2简介 251
12.1.2 安装FMS2 253
12.1.3 FMS2的“Hello Flash CS3” 255
12.2 开源的Red5 260
12.2.1 Red5简介 260
12.2.2 安装Red5 260
12.2.3 Red5的“Hello Flash CS3” 263
12.2.4 Red5中的配置文件 266
12.3 本章小结 269
第13章 “炸弹猪”游戏 271
13.1 游戏规则设计 271
13.2 游戏资源准备 272
13.2.1 游戏显示对象资源 272
13.2.2 音乐音效资源 273
13.2.3 过场动画 274
13.2.4 其他资源 275
13.3 游戏算法分析 275
13.4 场景搭建 283
13.5 编写代码 286
13.5.1 类对象的编写 287
13.5.2 文档类的编写 297
13.6 本章小结 321
第14章 飞行射击游戏—射日者 323
14.1 游戏规则 323
14.2 主要界面 324
14.3 单位介绍 325
14.3.1 战斗机 325
14.3.2 敌方单位 326
14.3.3 炮弹、火箭和导弹 329
14.3.4 奖励单位 331
14.3.5 爆炸效果 332
14.4 程序设计 333
14.4.1 结构分析 333
14.4.2 接口设计 335
14.4.3 辅助类设计 335
14.4.4 地图设计 336
14.4.5 信息显示 336
14.5 代码分析 337
14.5.1 GameSettings类 339
14.5.2 BasicElement类 340
14.5.3 Utils包 341
14.5.4 地图的生成与滚动 349
14.5.5 声音处理 351
14.5.6 Layer类 352
14.5.7 Explode类 354
14.5.8 接口 356
14.5.9 Elements包 356
14.5.10 Weapons包 364
14.5.11 Bullets包 365
14.5.12 Rockets包 368
14.5.13 敌机 371
14.5.14 炮台 375
14.5.15 Boss 380
14.5.16 奖励 383
14.5.17 Player包 386
14.5.18 关卡生成 396
14.5.19 生成游戏 397
14.5.20 开始游戏 410
14.6 本章小结 411