| 《FlashActionScript3殿堂之路》目录 |
| |
第 1 部分 ActionScript 3 语言基础 |
|
| |
|
第1章
ActionScript 3 语言介绍与开发环境
|
|
| |
1.1 ActionScript 3 介绍
1.1.1 ActionScript 发展历史简述
1.1.2 Flash Player 9 和 AVM 2
1.1.3 Macromedia 和 Adobe 的合并
1.1.4 ActionScript 3 与开源世界
1.2 ActionScript 3 的特色
1.2.1 核心语言新特色
1.2.2 Flash Player API 功能的新特色
1.3 ActionScript 3 程序开发工具
1.3.1 Flash CS3
1.3.2 Flex 2 、 Flex 3 及 Flex SDK
1.4 *ActionScript 3 程序的编译流程
1.5 熟悉开发环境和第一个“ Hello,world ”例子
1.5.1 在 Flash CS3 中创建“ Hello,world”
1.5.2 在 Flex Builder 中创建“ Hello, world”
1.6 本章小结 |
|
| |
第 2 章 ActionScript 3 语言基本元素 |
|
| |
2.1 ActionScript 3 中数据的本质及重要性质 15
2.1.1 * 一切都是对象( Object )
2.1.2 ActionScript 3 中数据类型概述
2.2 变量的声明和使用
2.2.1 声明变量的语法
2.2.2 变量命名规则
2.2.3 * 变量的本质
2.2.4 * 重要:值类型和引用类型的区别
2.2.5 基元数据类型的深入讨论 *
2.3 使用 const 声明常量
2.4 基础(非基本)数据类型 23
2.4.1 布尔值: Boolean
2.4.2 数字: int 、 uint 、 Number
2.4.3 重要:使用 int 、 uint 、 Number 应当注意的事项
2.4.4 字符串: String
2.4.5 数组: Array
2.4.6 Object 及关联数组
2.4.7 多维数组
2.4.8 Null 、 NaN 、 undefined 及各自应用对象:变量的默认值
2.5 运算符、表达式及运用
2.5.1 什么是运算符、表达式?以及运算符的设计用意
2.5.2 在 ActionScript 3 中使用操作符
2.5.3 * 运算符的本质
2.5.4 最常用的运算符:赋值运算符( = )
2.5.5 算术运算符:加、减、乘、除、模运算、求反运算
2.5.6 算术赋值运算符: += 、 -= 、 *= 、 /= 、 %=
2.5.7 关系运算符( 1 ): == 、 != 、 === 、 !===
2.5.8 关系运算符( 2 ): >= , <= , > , < ,
2.5.9 逻辑运算符( && 、 || 、 ! )
2.5.10 三元 if-else 运算符( ?: )
2.5.11 typeof 、 is 、 as
2.5.12 *in
2.5.13 delete : ActionScript 3 中的作用变了
2.5.14 优先级顺序
2.6 ActionScript 3 的保留字
2.7 本章小结 |
|
| |
第 3 章 ActionScript 3 流程控制 |
|
| |
3.1 什么是面向过程?看一个找书的例子
3.2 true 和 false :条件表达式的结果
3.3 if-else
3.3.1 最常用的 if 和 if…else
3.3.2 if…else if … else 的用法和注意点
3.4 循环
3.4.1 循环的三要素
3.4.2 while
3.4.3 do-while
3.4.4 for
3.4.5 * for…in 和 for each…in 52
3.4.6 break 和 continue 的简单用法
3.4.7 * 控制嵌套循环的流程: break 和 continue 的标签用法
3.5 switch
3.6 本章小结 |
|
| |
第 4 章 ActionScript 3 中的函数及高级使用技巧 |
|
| |
4.1 两种定义函数方法
4.1.1 函数语句定义法
4.1.2 函数表达式定义法
4.1.3 * 两种定义法的区别和选择
4.2 参数
4.2.1 按值还是按引用来传入参数
4.2.2 设置默认参数
4.2.3 访问参数信息和 …(rest) 关键字
4.3 * 函数的本质
4.3.1 函数语句定义法定义的函数对象本质
4.3.2 函数表达式定义法定义的函数对象本质
4.4 * 函数高级使用技巧
4.4.1 技巧一:代理函数对象
4.4.2 技巧二:建立函数执行队列
4.4.3 技巧三:利用函数返回函数
4.4.4 技巧四:函数动态添加实例属性
4.4.5 技巧五:函数对象动态添加实例方法
4.5 本章小结 |
| |
| |
第 2 部分 ActionScript 3 面向对象编程 |
|
| |
|
第 5 章 类和对象——从定义到原理 |
|
| |
5.1 第一个 ActionScript 3 简单的 Class (类)例子
5.2 Class (类)和 Object (对象)
5.2.1 Class 和 Object 的权威定义
5.2.2 Class 和 Object 的区别
5.3 Class 的成员
5.4 Class 和 Object 的创建和使用
5.4.1 创建 Class
5.4.2 创建类的实例
5.5 Class 和 package( 包 )
5.6 实例属性和实例方法
5.6.1 如何声明实例属性
5.6.2 如何声明实例方法
5.6.3 如何访问实例属性和实例方法
5.7 静态属性和静态方法
5.7.1 静态属性和静态方法的使用场合
5.7.2 声明静态属性和静态方法
5.7.3 访问静态属性和静态方法
5.7.4 应用 1 :使用静态属性集中管理数据
5.7.5 应用 2 :使用静态属性部分实现 Enumeration
5.7.6 应用 3 :实现工具类
5.8 构造函数
5.8.1 构造函数实例
5.8.2 构造函数只能使用 public 访问控制
5.8.3 构造函数的返回类型
5.9 Class 的种类:动态类和密封类
5.10 this 关键字
5.11 *ActionScript 3 中的方法重载
5.12 * 含有多个类的 ActionScript 3 类文件的标准例子
5.13 本章小结 |
| |
|
第 6 章 ActionScript 3 中的封装: 类的成员、类、包与访问控制 |
|
| |
6.1 什么是封装
6.2 为什么需要封装
6.2.1 封装使修改代码更加容易和安全
6.2.2 封装让代码分成一个个相对独立的单元
6.2.3 封装让整个软件开发的复杂度大大降低
6.3 ActionScript 3 中封装的几个层次
6.4 package (包)
6.4.1 包的导入( import )
6.4.2 使用 Import 避免命名冲突
6.4.3 package 的创建和命名
6.5 * 原理:编译器如何导入 package
6.5.1 类路径
6.5.2 编译器导入 package 的顺序
6.6 类成员的访问控制
6.6.1 Internal :包内访问
6.6.2 public :完全公开
6.6.3 private :仅当前类可访问
6.6.4 protected :子类可访问
6.7 Getter 和 Setter 方法
6.8 类( Class )的访问控制
6.9 包外类
6.10 本章小结 |
|
| |
第 7 章 * 命名空间 |
|
| |
7.1 命名空间的简要解释
7.1.1 命名空间与一词多义
7.1.2 第一个命名空间的代码例子
7.1.3 命名空间无处不在
7.2 使用命名空间的流程
7.3 命名空间的本质
7.3.1 命名空间的唯一性
7.3.2 系统如何生成命名空间的默认 uri
7.4 如何定义命名空间
7.4.1 将命名空间定义在独立的 .as 文件中
7.4.2 命名空间定义在类中
7.5 如何应用命名空间
7.6 如何引用命名空间
7.6.1 打开命名空间
7.6.2 使用命名空间名称限定符“ ::”
7.6.3 自定义命名空间和 public 、 private 、 protected 、 internal
7.7 命名空间有哪些实际应用 143
7.8 本章小结 |
|
| |
第 8 章 复合与继承 |
|
| |
8.1 如何实现复合( Composition )
8.1.1 一个复合的例子
8.1.2 初始化复合的对象
8.1.3 复合与聚合的区别
8.2 如何实现继承
8.2.1 创建自定义类与 ActionScript 3 默认的继承
8.2.2 继承的表现和一个具体例子
8.2.3 静态成员的继承
8.2.4 继承与访问控制
8.2.5 继承与重写( Override )
8.2.6 继承与私有方法:易错的误区
8.2.7 继承与 super 关键字
8.2.8 用 final 终止继承
8.2.9 何时使用 final
8.3 * 自定义命名空间的继承
8.4 何时用复合,何时用继承 161
8.5 本章小结 |
|
| |
第 9 章 多态 |
|
| |
9.1 数据类型检查和转换
9.2 向上转换( Upcasting )
9.2.1 简述里氏代换原则
9.2.2 向上转换( Upcasting )的代码例子
9.3 向下转换( Downcasting )
9.3.1 向下转换的两种方法
9.3.2 向下转换的代码例子
9.4 本章小结 |
|
| |
第 10 章 * 抽象类和接口 |
|
| |
10.1 什么是抽象类( Abstract Class )
10.1.1 使用抽象类的原则
10.1.2 使用抽象类的例子
10.1.3 * 如何用 ActionScript 3 实现真正的抽象类和抽象方法
10.2 什么是接口
10.2.1 * 接口是 OOP 编程的重要基石
10.2.2 如何创建接口
10.2.3 如何实现接口
10.2.4 接口与多继承、向上转换、向下转换
10.2.5 接口的继承
10.2.6 接口类型
10.3 抽象类和接口的区别
10.3.1 何时使用抽象类,何时使用接口
10.3.2 * 将接口和抽象类结合使用
10.4 本章小结 |
|
| |
第 3 部分 ActionScript 3 核心类 |
|
|
| |
第 11 章 ActionScript 3 核心类和全局函数 |
|
| |
11.1 ActionScript 3 中核心类和函数的变化及原因
11.2 核心类的数目和列表
11.3 核心类和函数的作用和地位
11.4 本章小结 |
|
| |
第 12 章 数组: Array |
|
| |
12.1 数组( Array )的介绍
12.1.1 访问数组元素
12.1.2 数组的长度
12.1.3 多维数组
12.2 数组( Array )的基本操作
12.2.1 查找: indexOf 、 lastIndexOf 201
12.2.2 在数组首尾新增元素: push 、 unshift
12.2.3 删除数组首尾元素: pop 、 shift
12.2.4 在数组当中插入或者删除元素:灵活多变的 splice
12.2.5 获取数组中的部分元素: slice
12.2.6 将多个元素或数组拼合成新的数组: concat
12.2.7 * 数组的浅复制与深复制
12.2.8 排序: reverse 、 sort 、 sortOn
12.3 操作数组每个元素: forEach 、 every 、 filter 、 map 、 some
12.3.1 5 个方法的共同点
12.3.2 回调函数
12.3.3 代码示例
12.4 本章小结 |
|
| |
第 13 章 字符串: String |
|
| |
13.1 CHAR 在那里
13.2 在 ActionScript 3 中如何针对字符操作
13.2.1 运用 charAt() 和 char CodeAt()
13.2.2 运用 fromCharCode()
13.3 字符串是不变对象( immutable object )
13.4 ActionScript 3 中的 StringBuilder 在哪里
13.5 + 、 += 及 < 、 <= 、 > 、 >= 在字符串操作中的重载
13.5.1 在 ActionScript 3 中运算符的重载: + 和 += 的重载
13.5.2 关系运算符( < 、 <= 、 > 、 >= )的重载
13.6 常用的字符串操作
13.6.1 indexOf() 的使用及与 search() 的区别
13.6.2 substring() 、 slice() 和 substr() 的使用及区别
13.6.3 split() 与正则表达式结合运用
13.6.4 如何一次性输入多行文本
13.7 实用的 mx.utils.StringUtil 工具类
13.8 本章小结 |
|
| |
第 14 章 强大的正则表达式: RegExp |
|
| |
14.1 什么是正则表达式?
14.2 ActionScript 3 中的正则表达式
14.2.1 第一个正则表达式例子
14.2.2 正则表达式的两个构成部分
14.2.3 A ctionScript 3 中正则表达式的工作机制
14.3 正则表达式语法
14.3.1 正则表达式中的文字符号
14.3.2 正则表达式中的字符集
14.3.3 特殊的点号 (.)
14.3.4 选择符
14.3.5 括号与分组
14.3.6 用正则表达式描述字符串的重复
14.3.7 注意正则表达式的贪婪性和懒惰性
14.3.8 用正则表达式来定位
14.3.9 正则表达式的 5 个标志位
14.3.10 正则表达式元字符优先级
14.4 正则表达式与字符串的结合使用详解
14.4.1 RegExp 类的 exec() 和 test()
14.4.2 String 类的 search() 和 match()
14.4.3 String 类的 replace() 与正则表达式向后引用
14.5 常用的正则表达式
14.5.1 文本处理和输入限制常用正则表达式
14.5.2 网络和 HTML 代码方面的应用
14.5.3 表单验证
14.5.4 匹配数字
14.6 本章小结 |
|
| |
第 15 章 XML 数据处理 |
|
| |
15.1 XML 的概览
15.2 XML 简要介绍
15.2.1 一个简单的 XML 示例
15.2.2 XML 简明语法
15.2.3 如何编写一个结构优秀的 XML
15.3 XML 在 ActionScript 3 中的地位
15.3.1 E4X :更好的 XML 处理规范标准
15.3.2 A ctionScript 2 程序移植时,关于 XML 部分该如何处理
15.4 创建 XML 对象
15.4.1 使用构造函数创建 XML 对象
15.4.2 直接使用 XML 文本创建 XML 对象
15.5 使用运算符操作 XML 数据
15.5.1 使用“ . ”与“ @ ”直接访问、修改、创建和删除 XML 对象
15.5.2 使用“ . ”与“ @ ”直接修改 XML 对象
15.5.3 使用“ . ”与“ @ ”直接添加和删除子元素和属性
15.5.4 简单方便地搜索 XML 子元素和属性
15.5.5 * 使用正则表达式或自定义函数搜索 XML 子元素和属性
15.6 用 API 实现的一些常用 XML 操作
15.7 *XML 的命名空间
15.8 XML 对象与 XMLlist 对象
15.9 本章小结 |
|
| |
第 16 章 异常和错误的捕捉与处理 |
|
| |
16.1 什么是异常和错误
16.1.1 一个简单的异常例子
16.1.2 异常的概念和在 ActionScript 3 中的实现
16.1.3 使用异常处理机制的好处
16.2 使用 try-catch-finally 处理异常
16.2.1 try
16.2.2 catch
16.2.3 finally
16.2.4 try-catch-finally 的语法规则
16.3 使用 throw 抛出异常
16.4 自定义异常
16.5 ActionScript 3 中异常的层次和结构
16.6 处理异常的原则和方式
16.6.1 三大提倡
16.6.2 三大忌讳
16.7 对异常事件的处理
16.8 本章小结 |
|
|
|
| |
第 4 部分 ActionScript 3 主要的 Flash Player API |
|
|
|
| |
第 17 章 ActionScript 3 目前主要的 API 概览 |
|
| |
17.1 ActionScript 3 的 API 总览
17.2 Flash Player API 架构和介绍
17.3 Flash CS3 提供的 API 介绍
17.4 * 第三方类库提供的 API
17.4.1 A dobe 官方提供的产品之外的类库
17.4.2 A ctionScript 3 的 3D 应用
17.4.3 开源项目资源
17.5 本章小结 |
|
| |
第 18 章 事件发送和处理 |
|
| |
18.1 事件( Event )处理机制的产生和原理
18.1.1 示意图:点菜的例子
18.1.2 DOM3 事件的执行流程
18.1.3 第一个事件处理代码例子
18.2 ActionScript 3 事件机制的新特色
18.2.1 回顾 ActionScript 1 和 ActionScript 2 中的事件机制
18.2.2 A ctionScript 3 事件处理机制形式上的不同
18.2.3 新特色:事件流机制与视图元件的紧密结合
18.2.4 新特色:侦听器优先级
18.2.5 新特色:侦听器弱引用
18.3 事件
18.3.1 Event 类的属性
18.3.2 Event 类的构造函数
18.3.3 Event 类的方法
18.3.4 自定义事件类
18.4 侦听器
18.4.1 创建侦听器
18.4.2 侦听器中的 this 关键字
18.4.3 注册侦听器和移除侦听器
18.4.4 检测事件侦听器
18.4.5 * 事件的优先级
18.4.6 * 事件的弱引用
18.5 自定义类发送事件的 3 种方式
18.5.1 继承 EventDispatcher 类
18.5.2 复合 EventDispatcher 对象
18.5.3 * 实现 IEventDispatcher 接口
18.6 本章小结 |
|
| |
第 19 章 网络通信基础 |
|
| |
19.1 ActionScript 3 网络通信的流程
19.1.1 构建通信请求对象
19.1.2 发出数据请求
19.1.3 侦听器函数
19.2 读取 3 种数据格式的例子
19.2.1 读取文本格式数据
19.2.2 读取值对格式数据
19.2.3 读取二进制格式数据
19.2.4 监控加载进度
19.3 getURL() 的继承人: navigateToURL()
19.4 提交数据的例子
19.5 简述安全模型
19.5.1 沙箱模型
19.5.2 跨域文件: crossdomain.xml
19.5.3 * 授予脚本访问权限: Security.allowDomain()
19.6 本章小结 |
|
|
| |
第 5 部分 ActionScript 3 视觉编程 |
|
|
|
| |
第 20 章 ActionScript 3 视觉编程精要 |
|
| |
20.1 什么是显示对象
20.1.1 A ctionScript 3 中显示对象等级结构
20.1.2 显示列表:显示对象模型
20.2 ActionScript 3 中显示对象的种类
20.2.1 A ctionScript 2 中的 MovieClip
20.2.2 A ctionScript 3 显示对象种类划分:一个统一、两个层次
20.3 * 显示对象类库架构
20.3.1 InteractiveObject 类和非 InteractiveObject 类
20.3.2 容器类和非容器类
20.3.3 Sprite 和 MovieClip
20.3.4 * 非 Flash API 的几个显示对象类
20.4 ActionScript 3 视觉架构的优越性
20.4.1 更高效的渲染,更好的内存利用
20.4.2 自动化的深度管理
20.4.3 完整遍历显示列表
20.4.4 列表外的显示对象
20.4.5 更易于创建自定义的显示对象
20.5 本章小结 |
|
| |
第 21 章 DisplayObject 类与矢量图、位图 |
|
| |
21.1 显示对象的一些基本概念 ... 337
21.1.1 显示对象的可视属性列表
21.1.2 显示对象的其他属性
21.2 所有显示对象的抽象父类: DisplayObject 类
21.3 矢量图
21.3.1 Graphics 对象
21.3.2 绘制矢量图的例子
21.4 位图
21.4.1 位图和像素
21.4.2 Bitmap 和 BitmapData . 343
21.4.3 使用 BitmapData 创建和改变位图
21.5 遮罩
21.5.1 定义普通遮罩
21.5.2 定义 Alpha 通道遮罩
21.6 文本
21.6.1 创建文本
21.6.2 捕获 HTML 文本超链接的信息
21.6.3 在文本框中追加文本请使用高效率的 appendText()
21.7 碰撞检测
21.8 自定义显示对象类
21.9 本章小结 |
|
| |
第 22 章 容器: DisplayObjectContainer 与 Sprite 、 MovieClip |
|
| |
22.1 容器的概念和实现
22.1.1 DisplayObjectContainer 类
22.1.2 最轻量的容器: Sprite 类
22.1.3 一个自定义容器类的例子
22.2 添加、删除视觉元件
22.2.1 Flash 程序中所有显示对象的添加流程
22.2.2 a ddChild 方法、 removeChild 方法和 contains 方法
22.2.3 重要:添删显示对象的注意点
22.3 深度管理
22.3.1 深度的产生顺序和一个注意点
22.3.2 a ddChildAt 和 removeChildAt
22.3.3 交换不同深度的对象: swapChildren 和 swapChildrenAt
22.3.4 重设列表中已有对象的深度: setChildIndex
22.3.5 操作深度的具体代码例子
22.4 访问和遍历容器子显示对象 ... 367
22.4.1 3 种访问方式的比较和选择
22.4.2 通过深度访问子显示对象
22.4.3 遍历容器的子显示对象
22.4.4 通过 name 访问显示对象
22.4.5 通过坐标访问显示对象
22.5 MovieClip (影片剪辑)
22.5.1 MovieClip 的播放
22.5.2 为何在 Flash 创作工具中依然可以使用点号加影片实例名 访问子影片
22.5.3 未公开的 API :方便实用的 addFrameScript()
22.6 加载外部图像、 SWF 文件
22.6.1 加载 SWF 文件示例
22.6.2 域和安全性
22.6.3 A VM2 的 SWF 文件与 AVM1 的 SWF 通信
22.6.4 访问被加载 SWF 文件的参数及访问网页传入的 参数( flashvars )
22.7 本章小结 |
|
| |
第 23 章 Flash CS3 :库元件的类绑定与 Stage 、文档类 |
|
| |
23.1 类绑定的好处、原理和第一个例子
23.1.1 第一个类绑定的例子:自定义标签按钮
23.1.2 Flash 创作工具中的类绑定
23.1.3 帧代码和类绑定的角色比较
23.1.4 绑定的选择: MovieClip 子类和 Sprite 子类
23.2 如何在绑定类中访问影片内的子显示元件
23.3 绑定类中访问剪辑子元件的两种方法
23.3.1 手工声明 public 属性方法
23.3.2 自定义新属性方法
23.4 3 种不同的类绑定
23.4.1 自动生成的类绑定及用代码直接生成库元件对象
23.4.2 元件与独立的类绑定
23.4.3 让不同的库元件继承自共同的类
23.5 舞台与文档类
23.6 本章小结 |
|
| |
第 24 章 显示编程与事件、人机交互 |
|
| |
24.1 * 事件的事件流( Event Flow )机制
24.1.1 事件流机制的 3 个阶段
24.1.2 事件 currentTarget 属性和 target 属性
24.1.3 * 事件侦听时的事件流阶段
24.1.4 * 事件都能冒泡吗?
24.1.5 说明事件流机制的例子
24.2 鼠标相关事件
24.2.1 鼠标事件对象的目标
24.2.2 单击和双击、鼠标按下和松开
24.2.3 鼠标悬停和鼠标移走
24.2.4 * 用代码模拟鼠标输入
24.3 键盘相关事件
24.3.1 监听键盘输入的例子
24.3.2 全局监听键盘事件
24.3.3 Tab 键与 tabChildren . 410
24.4 拖曳、鼠标跟随
24.4.1 拖曳
24.4.2 鼠标跟随
24.5 本章小结 |
|
| |
第 25 章 ActionScript 3 动画编程 |
|
| |
25.1 动画编程原理
25.1.1 TimerEvent.TIMER 和 Event.ENTER_FRAME 比较
25.1.2 Event.ENTER_FRAME 事件与 ActionScript 2 中的 onEnterFrame
25.2 代码绘制
25.3 改变显示对象属性
25.4 使用 Timer 类实现动画效果
25.5 借助 fl.transitions 包中的现有类创建动画代码
25.5.1 Tween 类的多种用法
25.5.2 TransitionManager 的用法
25.6 Flash 创作工具与动画编程的结合: Animator 的运用
25.6.1 原理: Motion XML 的构造和 Animator 的使用
25.6.2 具体演示和代码实例
25.6.3 Animator 使用技巧和资源
25.7 本章小结 |
|
| |
第 26 章 *Flash 创作工具和 Flex 协作开发组件 |
|
| |
26.1 浅谈 Flash CS3 组件与类绑定的剪辑元件
26.2 Flex 组件与 Flash CS3 创作内容如何结合
26.2.1 Flex 组件架构对显示对象的要求
26.2.2 Flex Component Kit for Flash CS3 的安装和使用
26.2.3 Flash CS3 和 Flex 的桥梁: UIMovieClip
26.3 如何开发 UIMovieClip 组件
26.4 一个纯代码 UIMovieClip 组件的例子
26.5 本章小结 |
|
|
|
附录 A |
|
|
|
| |
A.1 常用字符的 ASCII 码表
A.2 书中代码示例索引 |
|