第1篇 基础知识 2
第1章 从零起步 2
1.1 计算机和程序语言 4
1.1.1 计算机硬件和二进制 4
1.1.2 语言的发展 5
1.1.3 操作系统与虚拟机 8
1.2 牵手ActionScript3 9
1.2.1 使用Flash CS6开发第一个程序 10
1.2.2 使用Flash Builder开发第一个程序 16
菜鸟总结 26
第2章 数据类型 27
2.1 基本数据类型 27
2.1.1 变量与常量 28
2.1.2 基本数据类型之间的转换 29
2.1.3 认识数组 33
2.1.4 处理字符串 40
2.2 复杂数据类型与对象 47
2.2.1 对象的创建和引用 48
2.2.2 对象的销毁 51
2.3 别具一致的强对象语言 52
菜鸟总结 53
第3章 面向过程设计 54
3.1 运算符 55
3.1.1 算术运算符 55
3.1.2 关系运算符 56
3.1.3 逻辑运算符 57
3.1.4 类型检查运算符 58
3.1.5 成员运算符 59
3.1.6 位运算符 60
3.1.7 赋值运算符 65
3.1.8 条件运算符 66
3.1.9 逗号运算符 67
3.1.10 运算符的优先级 67
3.2 语句 69
3.2.1 顺序结构 69
3.2.2 选择结构 70
3.2.3 循环结构 72
3.3 函数 77
3.3.1 定义函数 77
3.3.2 函数参数 79
3.3.3 变量在函数中的存活周期 82
3.3.4 递归函数 82
菜鸟总结 84
第4章 游戏——汉诺塔 85
4.1.1 游戏制作 85
4.1.2 使用递归求解 92
第2篇 面向对象 98
第5章 面向对象概述 98
5.1 面向对象的特征 99
5.2 使用Flash Builder进行面向对象开发 102
5.2.1 创建ActionScript项目 103
5.2.2 创建包 105
5.2.3 类的全限定名 106
5.3 使用Flash CS6进行面向对象开发 108
5.3.1 时间轴 108
5.3.2 元件库 109
5.3.3 对象和自动引用声明 110
5.4 类的导入和发布 112
5.4.1 FlashBuilder中的库项目 113
5.4.2 在Flash CS6中发布和导入swc 117
5.5 开始程序员生涯中的积累 119
菜鸟总结 121
第6章 游戏——打地鼠 122
第7章 面向对象编程 131
7.1 as3中的封装层次 131
7.1.1 访问控制符 132
7.1.2 包外类 135
7.2 类的成员 138
7.2.1 属性初始化 138
7.2.2 get/set属性 140
7.2.3 构造函数 144
7.2.4 静态成员 145
7.3 继承和多态 149
7.3.1 this和super关键字 149
7.3.2 实现多态 150
7.3.3 静态成员不参与继承 156
7.4 里氏代换原则 158
7.4.1 向上转型 158
7.4.2 向下转型 158
7.4.3 转型时常见错误 159
7.5 动态类 159
第8章 面向对象开发过程 163
8.1 OOAD 163
8.1.1 OOA 164
8.1.2 OOD 164
8.2 面向对象开发过程 165
8.2.1 瀑布模型 165
8.2.2 统一软件开发过程(USDP) 166
8.3 统一建模语言UML 168
8.3.1 诞生背景 169
8.3.2 UML构成 170
8.3.3 UML中的公共机制 174
8.3.4 UML绘制工具 176
8.4 其他工具 183
8.4.1 Visio 183
8.4.2 FlexFormatter 184
8.4.3 MindManager 186
第9章 游戏——敲砖块 188
9.1 开发过程 188
9.2 OOA部分 189
9.3 OOD部分 191
9.4 OOP部分 194
9.5 同步代码 205
9.6 反向工程 207
9.7 生成文档 208
第10章 架构与设计 213
10.1 抽象类 214
10.1.1 定义抽象类 215
10.1.2 抽象方法 217
10.2 接口 217
10.2.1 UML中的接口 222
10.2.2 使用接口设计架构 224
10.2.3 抽象类与接口 226
10.3 命名空间 231
10.3.1 定义和使用命名空间 231
10.3.2 命名空间的特性 234
10.4 对图形化语言的探索 236
第11章 设计模式 239
11.1 OO原则 240
11.2 认识设计模式 242
11.3 创建全局访问点 243
11.3.1 静态库 244
11.3.2 单例模式 246
11.4 封装变化的部分 248
11.4.1 策略模式 248
11.4.2 状态模式 255
11.5 巩固不变的部分 272
11.5.1 适配器模式 273
11.5.2 装饰者模式 275
11.5.3 外观模式 279
11.6 减少依赖 284
11.6.1 模板方法模式 284
11.6.2 最少知识 287
11.6.3 简单工厂 289
11.7 依赖倒置 290
11.7.1 工厂方法模式 291
11.7.2 抽象工厂模式 296
11.8 交互中的耦合 301
11.8.1 观察者模式 301
11.8.2 命令模式 311
11.9 模式合作 324
11.9.1 复合模式 326
11.9.2 MVC模式 327
11.10 模式夜话 345
11.10.1 平衡的世界 345
11.10.2 模式分类 348
11.10.3 发掘自己的模式 349
第12章 游戏——大鱼吃小鱼 352
12.1 游戏介绍 352
12.2 游戏开发 352
12.2.1 初始阶段 353
12.2.2 细化阶段 355
12.2.3 构造阶段:首次迭代 356
12.2.4 构造阶段:第1次迭代 357
12.2.5 构造阶段:第2次迭代 363
12.2.6 构造阶段:第3次迭代 374
12.2.7 构造阶段:第4次迭代 388
12.2.8 交付阶段 392
12.3 项目总结 392
第3篇 显示编程 395
第13章 as3中的事件架构 395
13.1 事件和信号 395
13.2 同步调用和异步调用 397
13.3 事件需要一个架构 398
13.4 架设自己的广播台 402
13.5 内置信号 409
13.6 自定义信号 411
13.7 冒泡机制 415
13.7.1 事件响应 416
13.7.2 截断事件流 418
菜鸟总结 421
第14章 as3中的显示架构 423
14.1 DisplayObject的显示能力 424
14.1.1 位置与大小 424
14.1.2 名字和引用 432
14.1.3 可见性与透明度 435
14.1.4 剪裁与遮罩 436
14.1.5 帧事件 442
14.1.6 混合与滤镜 443
14.1.7 渲染与重绘 454
14.2 InteractiveObject的交互能力 461
14.2.1 鼠标事件 461
14.2.2 键盘与焦点 472
14.2.3 菜单 485
14.3 DisplayObjectContainer的管理能力 497
14.3.1 深度管理 497
14.3.2 管理子对象 504