ActionScript 3.0权威指南

 ActionScript 3.0权威指南

 

作者:  乔珂 
译者: 无 
定 价:  89.00元(含光盘1张) 
页码:  840 
出版时间:  2008-07 
ISBN号:  9787121068522 

 

内容简介:

       本书将ActionScript 3.0作为一种全新的、独立的、具有自己特色的语言,系统全面地介绍了此语言的结构和概念。
        全书以培养实际开发能力为目的,将语言的基本语法、核心概念及新增功能统一起来。根据知识点在语言逻辑体系和实际应用中的权重,对语法和概念重新进行分级和组织。结合Flash网络应用和脚本开发的实际,围绕面向对象的开发思想,深入阐述了ActionScript 3.0的自身逻辑。不仅解决了应该如何做的问题,还回答了为何如此的疑问。引领读者体会语法表象之内的深层美感,培养ActionScript 3.0开发思维,使读者能流畅地编写代码。
        本书内容由浅入深平缓过渡,适用于各种程度的读者。即使读者没有相关知识背景,也能轻松阅读本书,并最终掌握ActionScript 3.0。对于有开发经验的读者,阅读本书有助于脱离惯性思维,重新认识这种语言。

 

 

美妙的语言

借阅读《ActionScript 3.0权威指南》书稿的机会,我不禁重新审视ActionScript——这门独具魅力的语言,一个广阔思想的展台。

ActionScript最初设计用于Flash交互与控制动画。当开发者可以快速地建立动画,配合音效,并根据浏览者的意图来产生互动时,是多么令人振奋!越来越多的人开始使用Flash创建属于自己的个人网站,在互联网上展示自己。网络上随处可见五彩缤纷的Flash作品、游戏,使我看到了许多让人赞叹的精彩创意。

2.0以后ActionScript类库的更新,标志着ActionScript已经成为一门面向对象语言,随着越来越多的Flash作为前端RIARich Internet application)应用的出现,宣告了ActionScript进入新的时代。直到MicromediaAdobe公司收购以后,ActionScript遇到了一个不大不小的变革。说大,是因为语言结构发生了很大的变化;说小,是因为虽然类的组织进行了更加完善的架构,而根本的思想还是从之前的体系演化而来的。当然,在这个过程中,ActionScript的能力得到了进一步的强化,也吸引了很多从事JavaC++的程序员进来,于是,Flash被更加明确地分成了两类:界面动画图形设计与交互程序。不可否认,ActionScript 3核心的类库做出了大幅度的重构,并且在语法上也和ActionScript 2存在着较大的分歧。然而,要注意的是,虽然这个改动导致了很多从事ActionScript 2开发者难以适应,但是,新的架构体系与其说是改变了很多东西,还不如说是提炼了很多东西,它以更规范、更高效的形态来逐步改变开发者的思想。令人欣慰的是,本书作者乔珂也清楚看到了ActionScript的变化脉络,在这部800多页的专著中,他用易于理解的思路和语言详细阐述了ActionScript作为一门日趋丰满的面向对象语言的独特魅力,并结合自身开发经验为读者提供了丰富的案例来借鉴学习。

我一直认为,无论是Flash IDE也好,Flex Builder也好,或者什么都好,作为开发环境而言,并没有优劣之分。直到现在,还有很多朋友在提出类似到底哪一个更好的问题。其实,无论是RIA何种应用,游戏,网站,动画展示等,无非都是以“swf”为后缀的文件,用Flash Player解析呈现而已,这是Flash在终端所展示的形态。现在,你既可以用Flash轻松加入喜爱的图片、音乐,并有序地组织好这些资源,也可以使用Flex快速创建应用程序,通过调用别的后台语言,如PHPJSPColdFusion等获取数据,再使用合理的逻辑把数据和界面组织起来。如果你熟悉了ActionScript,在这个平台里,你可以尽情地按照你的想象来发挥,我相信现在的ActionScript 3有着非常优秀的架构体系和宽广的应用面,也相信会有更多的朋友加入到这个充满活力的阵营中来。

感谢Adobe开发组的所有成员,奉献和创造了如此美妙的语言。

希望看到本书的读者,不要错过领悟美妙的ActionScript的机会。

                                                                                                                         “蓝色理想”网站站长  曾沐阳

 

 

目录

 

1  ActionScript 3.0的外围知识

1  ActionScript 3.0综述     2

本章从脚本语言的基础知识开始,逐步介绍了ActionScript 3.0的发展过程和运行原理。不仅涉及ActionScript 3.0FlashPlayerAVM2等周边知识,也深入介绍了Flash SWF文件的结构和ActionScript 3.0SWF文件中的作用。对于ActionScript 3.0的编译和执行,本章也有详细的介绍。

1.1  脚本语言基础知识      2

1.1.1  脚本语言的概念       2

1.1.2  脚本和程序     3

1.1.3  脚本语言的特性       3

1.2  FlashActionScript   4

1.2.1  LEGO设计模式       5

1.2.2  FlashAction的起源      5

1.2.3  发展历程         7

1.2.4  ActionScript 3.0的进步     8

1.2.5  通用性    10

1.2.6  FlashLite 11

1.2.7  ActionScript 3.0编程工具 12

1.3  Flash的内部机制        14

1.3.1  Flash应用的生命流程      14

1.3.2  SWF文件的Tag结构       16

1.3.3  Tag结构存储实例    17

1.3.4  编译解析         18

1.3.5  AVM2的解析 19

1.3.6  执行时序         20

1.4  AS3RIA开发        21

1.4.1  交互程序的进化       22

1.4.2  软件系统体系结构   23

1.4.3  RIA的诞生及其优势        24

1.4.4  Adobe AIR简介       26

1.4.5  ActionScript 3.0Adobe AIR开发   27

1.4.6  AIR学习步骤 28

1.5  小结  29

2  配置开发环境       30

本章主要介绍了ActionScript 3.0开发常用的三种环境:Adobe官方的Flash CS IDEFlexBuilder 2,以及第三方软件FlashDevelop 3.0。经过本章的学习,读者应该在自己的PC上构建至少一种开发环境,以方便学习后面的编程章节时上机实践。

2.1  Flash CS3开发环境    30

2.1.1  选择Flash版本        30

2.1.2  安装Flash CS3         31

2.1.3  配置Adobe AIR环境        32

2.1.4  Flash CS3的代码编辑器  33

2.1.5  快捷工具栏     34

2.1.6  专家工具         35

2.1.7  代码调整工具 36

2.1.8  分页式代码标签       37

2.1.9  自定义代码编辑器   37

2.1.10  自动套用格式         38

2.2  Adobe Flex Builder开发环境        39

2.2.1  系统要求         39

2.2.2  安装准备         40

2.2.3  安装模式         40

2.2.4  安装Flex Builder 2   41

2.2.5  Flash Player 9 Debug     41

2.2.6  完成Flex Builder 2的安装         42

2.2.7  Flex Builder 2集成开发环境      42

2.2.8  Navigator文件浏览器       43

2.2.9  Flex Builder中的代码编辑器     43

2.2.10  Outline提纲浏览器         44

2.2.11  嵌入式Outline窗口        45

2.2.12  添加调试面板         46

2.2.13  Flex Builder 2设计辅助环境    47

2.2.14  自定义Flex Builder 2      48

2.3  FlashDevelop开发环境        50

2.3.1  FlashDevelop 3.0的特色   50

2.3.2  安装FlashDevelop    51

2.3.3  项目编译测试 52

2.3.4  自定义代码编辑器   53

2.3.5  优化中文字符显示   54

2.3.6  全局自定义类库       55

2.3.7  项目自定义类库       56

2.3.8  设置项目输出 56

2.4  小结  57

3  创建“Hello World”程序      59

本章围绕创建“Hello World”程序,向读者介绍了ActionScript程序的开发过程,以及常用开发软件的具体使用方法。本章的内容安排本着由简单到复杂,由表面到本质的原则。介绍了如何脱离开发软件,手工实现代码管理和程序编译。帮助读者建立对ActionScript 3.0开发流程的整体认识,为进一步研究语言本身打下了基础。

3.1  Flash CS3创建“Hello World”程序     59

3.1.1  创建ActionScript 3.0项目         59

3.1.2  确定代码位置 60

3.1.3  输入ActionScript 3.0脚本         61

3.1.4  测试“Hello World”影片 61

3.1.5  使用舞台元件 62

3.1.6  舞台元件与脚本访问        62

3.1.7  控制舞台文本 63

3.1.8  动态创建类型实例   64

3.1.9  操作显示列表 65

3.1.10  ActionScript 3.0的灵活性        66

3.2  Flex Builder 2创建“Hello World”程序        67

3.2.1  Flex程序的构成       67

3.2.2  MXML的结构         68

3.2.3  MXML的命名空间 70

3.2.4  MXML创建和定义组件  71

3.2.5  用户界面同脚本逻辑的分离     72

3.2.6  MXML的专用组件 72

3.2.7  创建Flex项目          73

3.2.8  分析自动代码 74

3.2.9  使用Flex快速编写代码   74

3.2.10  编译MXML结构的“Hello World”程序         75

3.2.11  MXML中使用ActionScript 3.0   76

3.2.12  添加标签事件响应 78

3.2.13  MXMLAction Script的执行逻辑         78

3.2.14  ActionScript的内联、级联和外联    79

3.2.15  使用外联函数         80

3.2.16  可视化MXML编辑器   82

3.2.17  复杂代码的编译     84

3.2.18  贯彻MXML的分置原则         84

3.3  使用FlashDevelop 3.0编写程序  85

3.3.1  新建FlashDevelop项目    85

3.3.2  创建MXML应用文件     86

3.3.3  代码输入技巧 87

3.3.4  编译和执行MXML应用 88

3.3.5  创建外联脚本文件   89

3.3.6  按钮控件及事件响应        90

3.3.7  项目编译和交互测试        91

3.3.8  数字密码输入器       92

3.3.9  界面分析         92

3.3.10  新建项目       94

3.3.11  创建密码框   94

3.3.12  创建按钮       95

3.3.13  建立ActionScript 3.0函数       96

3.3.14  整合表示层和逻辑层文件       97

3.3.15  编译和运行程序     98

3.4  手工编译   100

3.4.1  Flex编译器     100

3.4.2  配置全局路径 102

3.4.3  创建代码文件 104

3.4.4  命令行手工编译       104

3.4.5  手工编译项目 105

3.5  小结  106

2  ActionScript 3.0的语言要素

4  语法基础结构       108

ActionScript 3.0是一种基于ECMA-262规范的脚本语言,其基本语法构成包括:标识符、关键字、数据类型、运算符和分隔符。这5种元素有着不同的语法含义和组成规则,它们互相配合,共同完成ActionScript 3.0语言的语意表达。通过本章的学习,可以认识ActionScript 3.0中的标识符、关键字、数据类型、运算符和分隔符等语法基础结构。

4.1  标识符       108

4.1.1  标识符的概念 108

4.1.2  标识符命名的技术规则    109

4.1.3  命名约定         111

4.2  关键字       114

4.2.1  表达式    114

4.2.2  语句控制         114

4.2.3  定义        115

4.2.4  属性关键字     116

4.2.5  编译指令         117

4.2.6  区分IMPORTINCLUDE关键字  117

4.2.7  类的长名称     119

4.3  数据类型   120

4.3.1  数据类型的概念       120

4.3.2  基元值和复杂值       121

4.3.3  数据类型的对象封装        122

4.3.4  Boolean数据类型     123

4.3.5  int数据类型    124

4.3.6  Null数据类型 124

4.3.7  Number数据类型     125

4.3.8  String数据类型        127

4.3.9  uint数据类型  127

4.3.10  void数据类型         128

4.3.11  无类型数据类型     129

4.3.12  复杂数据类型         130

4.4  变量和常量        131

4.4.1  字面值    131

4.4.2  变量及其声明 132

4.4.3  变量的赋值     133

4.4.4  变量的默认值 134

4.4.5  Number变量和NaN         134

4.4.6  变量的作用域 135

4.4.7  变量的后置声明       137

4.4.8  常量        138

4.5  运算符和功能符          140

4.5.1  加法算术运算符       140

4.5.2  乘法算术运算符       142

4.5.3  一元运算符++--   144

4.5.4  左移位运算符<<      145

4.5.5  右移位运算符>>>>>    147

4.5.6  与、或、非的位操作        148

4.5.7  位操作与特征位       151

4.5.8  特征位的赋值 153

4.5.9  特征位的开关操作   154

4.5.10 ^”位异或操作符 156

4.5.11  高级开关控制         157

4.5.12  逻辑运算符   158

4.5.13  比较运算符   162

4.5.14  赋值运算符   164

4.5.15  组合赋值运算符     166

4.5.16  功能符  167

4.6  类型转换和类型检查  170

4.6.1  隐式类型转换 170

4.6.2  显式类型转换 171

4.6.3  失效转换         172

4.6.4  静态类型语法 173

4.6.5  语法检查         174

4.6.6  编译时类型检查       176

4.6.7  运行时类型检查       177

4.6.8  数据类型成员的检测        178

4.6.9  as运算符         179

4.6.10  强制类型转换         180

4.6.11  运算符与隐式类型转换  181

4.6.12  数值类型的转换     183

4.6.13  布尔类型的转换     186

4.6.14  字符串的转换         187

4.7  小结  188

5  流程控制与函数   189

函数在程序的设计和开发过程中居于极其重要的地位,而使用流程图可以将复杂问题简单化,令抽象过程直观化。本章重点讲解了ActionScript 3.0中流程控制和函数使用的相关知识,并介绍了流程图的作用和画法。

5.1  条件流程   189

5.1.1  条件流程的概念       189

5.1.2  if()语句   190

5.1.3  if()...else...语句          191

5.1.4  三元运算符     193

5.1.5  多级条件流程 195

5.1.6  if()else if()…语句  197

5.1.7  switch语句基础用法         199

5.1.8  switch语句常见错误         200

5.1.9  条件流程的逻辑控制        203

5.2  循环流程   204

5.2.1  for循环  204

5.2.2  for()语句执行逻辑   206

5.2.3  forin循环     207

5.2.4  for eachin循环      209

5.2.5  while循环        211

5.2.6  dowhile循环         212

5.2.7  breakcontinue       213

5.2.8  label标签与循环嵌套        215

5.2.9  非循环标签     217

5.2.10  标签嵌套       218

5.2.11  循环与作用域         220

5.3  函数  221

5.3.1  函数的基本概念       222

5.3.2  函数定义语句 224

5.3.3  调用函数         226

5.3.4  作用范围和定义位置        227

5.3.5  使用参数         228

5.3.6  可选参数         229

5.3.7  参数的传递     230

5.3.8  函数输出         232

5.3.9  使用返回值     234

5.3.10  函数表达式   235

5.3.11  函数表达式的缺点 238

5.3.12  函数表达式的内存优势  239

5.3.13  函数表达式与编译提升  240

5.3.14  嵌套函数       242

5.3.15  使用arguments对象        244

5.3.16  arguments的方法   246

5.3.17  arguments与递归函数     248

5.3.18  arguments与函数重载     251

5.3.19  可变参数       253

5.3.20  函数作用域链         254

5.3.21  函数封包       256

5.3.22  函数对象       257

5.4  流程图       259

5.4.1  程序流程图的概念   259

5.4.2  程序流程图的作用   261

5.4.3  分级流程图体系       263

5.4.4  步骤列表         263

5.4.5  伪代码    264

5.4.6  经典数据流程图的构成    265

5.4.7  指向线与执行框(矩形框)     266

5.4.8  判别框(菱形框)   267

5.4.9  起始框和终止框(圆圈)         267

5.4.10  流程图设计原则     269

5.4.11  常见流程图结构     271

5.4.12  嵌套结构的流程图 272

5.5  小结  274

6  面向对象编程       276

本章围绕OOP这一核心内容,从面向对象编程的基础概念入手,逐步深入。在内容组织上,通用概念和具体实现交织,抽象机制同实际代码并存。先后介绍了Action Script 3.0对类的支持和实现,原型对象与抽象类,命名空间和权限控制,包和类文件的管理,类和对象的操作语法等内容。

6.1  对象和类   276

6.1.1  编程模式         276

6.1.2  模式进化         277

6.1.3  OOP与模块化         279

6.1.4  OOP开发过程         280

6.1.5  类设计策略     284

6.1.6  类元素的属性定义   286

6.1.7  术语记法         287

6.1.8  类的构造函数 287

6.1.9  继承:父类和子类   288

6.1.10  覆盖和重载   290

6.1.11  多态      293

6.1.12  嵌套类和动态类     294

6.2  面向对象的脚本实现  296

6.2.1  原型对象机制 296

6.2.2  操作原型对象 297

6.2.3  原型链    298

6.2.4  原型继承         300

6.2.5  原型机制下的抽象类        301

6.2.6  抽象类继承     302

6.2.7  操作AS3原型对象 304

6.2.8  灵活选择继承机制   306

6.2.9  命名空间的概念       307

6.2.10  创建命名空间         308

6.2.11  应用命名空间         309

6.2.12  引用命名空间         310

6.2.13  关键字AS3   311

6.3  自定义类   313

6.3.1  自定义类的作用       313

6.3.2  定义ActionScript 3.0    314

6.3.3  类属性关键字 316

6.3.4  类体        317

6.3.5  属性和方法     318

6.3.6  创建类成员     319

6.3.7  成员属性         321

6.3.8  static成员属性          323

6.3.9  静态属性         324

6.3.10  静态方法       326

6.3.11  实例方法       327

6.3.12  交叠访问       328

6.3.13  this与覆盖继承      330

6.3.14  构造函数       331

6.3.15  构造初始化   332

6.3.16  getset存取器     334

6.3.17  set/get存取器与属性覆盖        336

6.3.18  方法的封装   337

6.4  类的继承   339

6.4.1  继承成员         339

6.4.2  直接执行语句 340

6.4.3  创建和使用包 342

6.4.4  包与命名空间 345

6.4.5  利用包组织代码       346

6.4.6  继承访问控制 348

6.4.7  方法的继承覆盖       349

6.4.8  属性的继承与覆盖   349

6.4.9  关键字super    351

6.4.10  多态      353

6.4.11  静态成员与作用域链      354

6.5  面向对象进阶    356

6.5.1  联合继承         357

6.5.2  接口的概念     358

6.5.3  接口的作用     359

6.5.4  定义接口         361

6.5.5  实现接口         362

6.5.6  接口实例         363

6.5.7  接口检测         364

6.5.8  联合接口的实现       366

6.5.9  接口使用技巧 367

6.5.10  抽象类的内部机制 369

6.5.11  构造者对象   373

6.5.12  类对象的类型检查 375

6.5.13  traits对象与效率提升     376

6.5.14  动态类的概念         377

6.5.15  动态属性       378

6.5.16  动态方法       380

6.5.17  成员检查       382

6.5.18  成员删除       383

6.5.19  动态静态成员         384

6.6  小结  386

7  AS3常用对象      387

本章将选取编程中常用的类和对象,介绍其用法。这些常见的类和对象包括数组,字符串,形状、按钮等具有实际载体的对象,还包括时间、事件、显示列表等抽象的对象。这些对象虽然分散于ActionScript各个包中,但是几乎任何程序开发都不能脱离这几种对象。

7.1  数组和枚举        387

7.1.1  数组的概念     388

7.1.2  创建索引数组 389

7.1.3  索引数组的插入与删除    391

7.1.4  索引数组的插入与删除    393

7.1.5  索引数组的排序       395

7.1.6  属性排序         397

7.1.7  数组的输出     399

7.1.8  关联数组的概念       401

7.1.9  创建关联数组 403

7.1.10  字典      407

7.1.11  数组的循环遍历     409

7.1.12  数组的复制   410

7.1.13  多维数组       412

7.2  字符串       414

7.2.1  创建字符串     414

7.2.2  字符串的值     415

7.2.3  字符串的长度 416

7.2.4  拼接和转换     416

7.2.5  字符大小         417

7.2.6  搜索        418

7.2.7  截取和分割     419

7.2.8  替换        421

7.3  时间  422

7.3.1  创建Date对象         422

7.3.2  利用毫秒创建Date  423

7.3.3 Date()”参数列表   423

7.3.4  使用日期字符串       424

7.3.5  设置与读取     425

7.3.6  访问属性         426

7.3.7  日期运算         427

7.3.8  时区运算         427

7.4  显示列表   428

7.4.1  显示对象         428

7.4.2  显示对象容器 429

7.4.3  显示列表的概念       430

7.4.4  显示列表的优势       431

7.4.5  创建显示对象 432

7.4.6  添加显示对象 433

7.4.7  显示对象排序 435

7.4.8  删除显示对象 437

7.4.9  调整显示对象 438

7.5  小结  439

3  语言应用

8  脚本动画基础       442

本章详细介绍了Flash脚本动画的基础知识。通过本章的学习,读者不仅理解了脚本动画的构成机制和定时器类的用法,还可以自行创建脚本实现位移、淡入淡出、旋转、伸缩形变等基础动画效果。本章由浅入深地讲解了ActionScript 3.0中的矩阵类,深刻分析了矩阵类的机制,为实现复杂的应用夯实基础。

8.1  动画定时器        442

8.1.1  动画要素         442

8.1.2  Timer  443

8.1.3  使用定时器     443

8.1.4  精确性    444

8.2  位置和大小        444

8.2.1  基本原理         445

8.2.2  实例演示         445

8.2.3  Matrix          446

8.2.4  应用实例         446

8.2.5  实例分析         447

8.2.6  斜切变形         448

8.3  颜色和透明度    449

8.3.1  操作透明度     449

8.3.2  ColorTransform    449

8.3.3  实例应用         450

8.3.4  代码分析         451

8.3.5  调色技巧         451

8.3.6  闪动动画         452

8.3.7  实现闪动效果 453

8.3.8  状态检查         455

8.4  淡入和淡出        455

8.4.1  数学模型         455

8.4.2  脚本实现         456

8.4.3  模块的封装     457

8.4.4  淡入淡出模块 458

8.4.5  渐变闪动         459

8.4.6  透明度渐变     461

8.5  位移运动   462

8.5.1  直线运动         462

8.5.2  创建程序实例 463

8.5.3  位移        464

8.5.4  运动阶段         464

8.5.5  重复运动         465

8.5.6  位移速度         466

8.5.7  计算点距离     466

8.5.8  调整运动阶段 467

8.5.9  代码实现         468

8.5.10  速度      469

8.5.11  行程      470

8.5.12  匀速位移动画         471

8.6  变形矩阵   472

8.6.1  矩阵基础知识 473

8.6.2  矩阵的运算     473

8.6.3  矩阵与空间变换       474

8.6.4  旋转变换矩阵 475

8.6.5  仿射变形         476

8.6.6  仿射变形的次序       477

8.6.7  Matrix类的本质       477

8.6.8  矩阵变形方法 478

8.6.9  矩阵算法原理 480

8.7  旋转变形   482

8.7.1  旋转和坐标系 482

8.7.2  旋转变形         484

8.7.3  相对坐标系     484

8.7.4  伸缩和映射     487

8.7.5  内建伸缩方法 487

8.7.6  自定义伸缩方法       488

8.7.7  分析映射逻辑 490

8.7.8  多次变形         491

8.7.9  位移向量运算 492

8.7.10  改变内建行为         493

8.8  小结  494

9  动画进阶和脚本仿真    495

本章通过实例,介绍了ActionScript 3.0代码在动画中的高级应用。内容不仅涉及到波形运动,重力模拟和变速控制,还详细讨论了诸如倒影,弹性,斜切等特殊效果的实现。通过学习,读者可加深ActionScript 3.0动画编程的理解,对具有一定复杂性的动画也能轻松驾驭。

9.1  创建波形位移运动      495

9.1.1  波形运动的分解       495

9.1.2  创建进阶动画场景   496

9.1.3  建立脚本框架和动画入口         497

9.1.4  创建波动函数 498

9.1.5  改变波的角度 499

9.1.6  波的折线形     500

9.2  运动对象的实时倒影  501

9.2.1  实时倒影的原理       502

9.2.2  实现垂直映射 502

9.2.3  完善水平映射 504

9.2.4  在动画中应用倒影   506

9.2.5  让倒影更加真实       507

9.3  力学模拟和加速减速  508

9.3.1  力和加速度的关系   508

9.3.2  加速度的代码描述   509

9.3.3  力的分解         510

9.3.4  力学模拟游戏 512

9.3.5  增强游戏效果 513

9.3.6  模拟昆虫的飞行       514

9.3.7  昆虫飞行代码分析   515

9.3.8  强化效果及数据采样        516

9.4  重力和弹性        518

9.4.1  抛物线的力学分析   518

9.4.2  简单抛物过程的代码实现         519

9.4.3  落地检测         520

9.4.4  弹跳的力学原理       521

9.4.5  弹跳过程的算法       522

9.4.6  AS3实现弹跳函数       523

9.4.7  碰撞形变和弹跳形变        524

9.4.8  弹性形变的逻辑流程        525

9.4.9  计算形变因子 526

9.4.10  编写弹性形变函数 528

9.4.11  代码流程分析         530

9.4.12  形变代码分析         532

9.4.13  纳尔逊设计模式     533

9.5  斜切变形   534

9.5.1  斜切的原理     534

9.5.2  斜切的代码实现       536

9.5.3  简单斜切动画 537

9.5.4  斜切的仿真应用       538

9.5.5  加速斜切变形 539

9.5.6  减速斜切与振荡变形        540

9.5.7  减速斜切函数 541

9.5.8  变速斜切的改良       543

9.5.9  改良函数分析 545

9.6  小结  547

10  影片剪辑与图形图像  548

本章讨论了Flash开发中的影片剪辑控制、绘图API、位图操作、文本、遮罩和滤镜等实用技术。经过本章的学习,读者可以采用编程方式,对显示对象和位图进行操作,应用滤镜,创建遮罩,并将其显示在舞台之上,创建优质的用户界面。

10.1  影片剪辑控制  548

10.1.1  影片剪辑与时间轴 548

10.1.2  创建影片剪辑         550

10.1.3  自定义影片剪辑     551

10.1.4  控制影片剪辑         552

10.1.5  逆序播放       553

10.1.6  帧标签  554

10.1.7  FrameLabel         555

10.1.8  剪辑容器       556

10.1.9  影片剪辑属性         556

10.1.10  嵌套剪辑     557

10.2  绘图API 558

10.2.1  矢量图与点阵图     558

10.2.2  绘图API概述        558

10.2.3  绘制直线线条         559

10.2.4  线条样式       561

10.2.5  绘制曲线       563

10.2.6  绘制不规则形状     564

10.2.7  形状填充       564

10.2.8  绘制常见形状         566

10.3  操作位图 568

10.3.1  位图基本知识         568

10.3.2  基本图像格式         569

10.3.3  使用Loader加载外部图像      571

10.3.4  检测加载事件         572

10.3.5  BitmapData类与Bitmap      573

10.3.6  构建BitmapData     575

10.3.7  使用“draw()”方法       577

10.3.8  创建随机位图         579

10.3.9  Perlin纹理     581

10.3.10  操作位图像素       584

10.3.11  操作块像素 585

10.3.12  像素检测     587

10.3.13  克隆位图     588

10.3.14  蒙版复制     589

10.3.15  操作通道     591

10.3.16  锁定与解锁 593

10.4  文本         593

10.4.1  文本操作基本知识 594

10.4.2  修改静态文本         595

10.4.3  TextSnapshot      597

10.4.4  创建动态文本         600

10.4.5  嵌入图片       601

10.4.6  文本滚动       601

10.4.7  文本格式       602

10.4.8  TextRenderer与反锯齿    605

10.4.9  级联样式表   607

10.4.10  字段选择     609

10.4.11  输入文本     610

10.5  调整显示对象  611

10.5.1  遮罩      611

10.5.2  位图缓存与性能优化      613

10.5.3  Alpha通道遮罩      614

10.5.4  自动背景       615

10.5.5  显示对象的混合     616

10.5.6  调整颜色       618

10.5.7  滤镜的原理   620

10.5.8  常见滤镜       621

10.5.9  使用滤镜       622

10.5.10  位图滤镜     625

10.6  小结         626

11  事件与交互         627

本节主要介绍了ActionScript 3.0中事件的运行机制,内容围绕事件机制展开,着重阐述事件机制的原理、事件流的不同阶段和事件对象的派发过程。本章还介绍了如何实现对象间通信,捕获和处理异常,以及利用鼠标键盘同用户进行交互。

11.1  事件响应与异常处理         627

11.1.1  事件响应机制         627

11.1.2  事件流  629

11.1.3  Event         630

11.1.4  Event扩展类 632

11.1.5  IEventDispatcher接口      633

11.1.6  管理事件侦听器     633

11.1.7  操作事件对象         634

11.1.8  自定义事件   635

11.1.9  编写自定义事件类 636

11.1.10  对象的事件通信   638

11.1.11  操作下行事件流   640

11.1.12  侦听顺序     642

11.1.13  操作上行事件流   642

11.1.14  管理事件目标       643

11.2  异常处理 645

11.2.1  异常      645

11.2.2  错误类  646

11.2.3  trycatch语句       647

11.2.4  抛出异常       647

11.2.5  捕获异常       648

11.2.6  异常甄别       649

11.2.7  异步错误的概念     650

11.2.8  错误事件       650

11.2.9  处理异步错误         652

11.2.10  trycatch流控制 652

11.2.11  Flash Player与调试       653

11.3  用户交互 654

11.3.1  交互对象类   654

11.3.2  键盘输入       655

11.3.3  键盘事件流   657

11.3.4  鼠标事件       657

11.3.5  鼠标本地化   659

11.3.6  鼠标的移动   660

11.3.7  拖拽      661

11.4  系统交互 663

11.4.1  System类概述        663

11.4.2  设置文本编码         663

11.4.3  操作剪贴板   663

11.4.4  查询环境信息         664

11.4.5  获取系统分辨率     665

11.4.6  输入法控制   665

11.5  小结         667

12  使用外部数据     668

本章介绍了如何在Flash程序中与外部环境的数据进行数据交换,包括读取和写入这两种类型的操作。本章不仅介绍了如何使用数据共享对象,还讲述了套接字连接的用法和网络异步操作的相关知识,以帮助不同层次的读者认识ActionScript 3.0提供的低端类和高端类。

12.1  媒体资源数据  668

12.1.1  加载视频资源         669

12.1.2  控制视频播放         670

12.1.3  自定义播放界面     671

12.1.4  加载和播放声音     672

12.1.5  追踪音频进度         673

12.1.6  追踪音频进度         674

12.1.7  控制音量       675

12.1.8  加载和显示图像     676

12.1.9  加载和显示图像     676

12.1.10  加载对象的删除   677

12.1.11  加载SWF影片    679

12.2  文本与XML    680

12.2.1  URLLoader         680

12.2.2  加载外部文本         680

12.2.3  追踪加载进度         681

12.2.4  URLVariables     682

12.2.5  处理URL字符串文本    683

12.2.6  XML         684

12.2.7  加载XML文件      685

12.2.8  修改XML加载项  686

12.2.9  XML特殊访问       687

12.2.10  URLStream       688

12.2.11  加载流数据 688

12.3  存储数据 689

12.3.1  数据共享对象         689

12.3.2  创建共享对象         690

12.3.3  访问路径和安全     690

12.3.4  双重存储机制         691

12.3.5  操作共享数据         692

12.3.6  共享数据       693

12.3.7  遍历数据项   694

12.3.8  删除数据项   694

12.4  网络通信 695

12.4.1  套接字连接   696

12.4.2  Socket套接字类     696

12.4.3  读写Socket    696

12.4.4  XMLSocket        697

12.4.5  使用XMLSocket    698

12.4.6  接收XML数据      699

12.4.7  上传文件       699

12.4.8  下载文件       701

12.4.9  多文件上传   702

12.5  小结         702

4  实战篇

13  编写交互游戏     704

知识点之间的交叉贯通和灵活搭配是ActionScript 3.0开发的难点。本章综合运用ActionScript 3.0开发知识,引导读者建立一个拼图交互游戏,涉及ActionScript 3.0开发中所有的主要知识,包括流程控制、数组操作、外部数据加载、面向对象开发、图形图像操作等。在自由运用这些知识的基础上,最终完成交互游戏的程序开发。

13.1  程序分析 704

13.1.1  游戏功能       704

13.1.2  操作分析       705

13.1.3  模块划分       705

13.1.4  执行过程       705

13.2  编写游戏原型  705

13.2.1  创建游戏舞台         706

13.2.2  图块类的划分         707

13.2.3  ImgSlot      708

13.2.4  创建位图图块         708

13.2.5  GameSlot   709

13.2.6  创建屏幕画板         710

13.2.7  判断画板位置         711

13.3  游戏场景 712

13.3.1  分析游戏场景         712

13.3.2  场景基础       712

13.3.3  建立图块数组         714

13.3.4  图块分割       715

13.3.5  建立线性随机序列 716

13.3.6  创建画板数组         717

13.3.7  装载位图       719

13.3.8  舞台空位       720

13.3.9  组装游戏场景         720

13.4  完善游戏功能  722

13.4.1  控制模式       722

13.4.2  侦听鼠标事件         723

13.4.3  侦测目标画板         724

13.4.4  执行屏幕交换         725

13.4.5  游戏胜利判定         726

13.4.6  测试鼠标控制         727

13.4.7  侦听键盘控制         728

13.4.8  搜寻热点画板         729

13.4.9  发送虚拟消息         729

13.5  小结         730

14  RSS新闻阅读器          732

本章创建了一个RSS新闻阅读器,涉及远程文件访问、XML文件操作、fl包组件、数据源、数据共享对象等实用内容。本章内容着眼于程序的架构和模块。通过构建模块,带动程序的整体开发,培养读者对复杂应用的宏观控制能力。本章还介绍了一些高级话题,例如:事件机制的高级应用、自定义按钮类,以及Tween动画的使用技巧。

14.1  开发目标 732

14.1.1  基本功能       732

14.1.2  程序界面       732

14.1.3  功能模块       733

14.1.4  执行流程       734

14.1.5  临时调试项目         735

14.2  RSS结构剖析  735

14.2.1  RSS概述       735

14.2.2  应用领域       736

14.2.3  Flash RSS的优势   737

14.2.4  RSS版本       738

14.2.5  RSS 2.0基本格式  738

14.2.6  channel标签  739

14.2.7  item标签        740

14.2.8  样例RSS  741

14.3  登录界面 743

14.3.1  创建login 743

14.3.2  接收登录输入         744

14.3.3  创建自定义按钮     745

14.3.4  按钮状态类   746

14.3.5  添加登录按钮         747

14.3.6  布置登录界面         748

14.3.7  绘制登录框   749

14.3.8  显示登录界面         749

14.3.9  界面测试       751

14.4  用户管理 751

14.4.1  登录事件       752

14.4.2  用户ID取存器      752

14.4.3  验证登录信息         753

14.4.4  创建用户       754

14.4.5  密码验证       754

14.4.6  消息输出       755

14.4.7  登录框恢复   757

14.4.8  功能整合       757

14.4.9  编写测试项目         758

14.4.10  类关系分析 758

14.4.11  测试用户管理       760

14.5  RSS源列表      761

14.5.1  创建frame          761

14.5.2  绘制背景框   762

14.5.3  导入Button组件    763

14.5.4  RSS订阅       764

14.5.5  发送订阅事件         766

14.5.6  响应订阅事件         767

14.5.7  DataProvider数据源        769

14.5.8  List列表组件          770

14.5.9  创建RSS源列表   770

14.6  RSS阅读器整合       771

14.6.1  创建RSS阅读器项目     771

14.6.2  创建全局对象         772

14.6.3  添加侦听器   773

14.6.4  登录状态切换         773

14.6.5  Tween动画    774

14.6.6  登录交互动画         774

14.6.7  用户登录       776

14.6.8  添加RSS  777

14.6.9  频道简介       778

14.6.10  浏览RSS新闻     778

14.7  小结         779

15  全屏幕FLV视频播放器      780

本章介绍了介绍了Video类、NetConnection类和NetStram类的用法。围绕视频回放这一核心任务,分别阐述了如何控制FLV视频的读取,如何全屏幕回放FLV视频,如何控制视频流,如何读取FLV元数据,以及如何使用Slider控件追踪播放进度。本章还根据全屏模式的特点,讨论了相应的控制方法。

15.1  视频播放器概述        780

15.1.1  基本功能       780

15.1.2  模块分析       780

15.1.3  构建方式       781

15.1.4  视频播放器向导     782

15.1.5  Video         783

15.2  视频回放 783

15.2.1  视频回放原理         783

15.2.2  NetConnection网络连接对象   784

15.2.3  NetStream数据流对象    784

15.2.4  使用Video对象     784

15.2.5  基本操作步骤         785

15.2.6  自定义视频回放类 786

15.2.7  创建自定义方法     786

15.2.8  使用flvvideo      788

15.3  视频控制 789

15.3.1  创建回放控制类     789

15.3.2  换肤功能       790

15.3.3  视频的播放和暂停 790

15.3.4  添加控制组件         791

15.3.5  控制按钮与事件侦听      792

15.3.6  创建控制面板实例 793

15.3.7  调整播放位置         794

15.3.8  视频流的停止和关闭      796

15.4  回放进度与流缓冲    796

15.4.1  获取视频元数据     796

15.4.2  绑定回调函数         797

15.4.3  跟踪播放进度         799

15.4.4  使用Slider组件     800

15.4.5  回放进度的交互     802

15.4.6  设置视频缓冲         803

15.4.7  数据加载进度         803

15.5  全屏模式 803

15.5.1  播放器版本支持     804

15.5.2  全屏模式       804

15.5.3  屏幕坐标与缩放模式      805

15.5.4  舞台对齐       806

15.5.5  区域全屏       806

15.5.6  切换屏幕模式         806

15.6  小结         808

你可能感兴趣的:(ActionScript 3.0权威指南)