Flash ActionScript3殿堂之路.pdf

Flash ActionScript3殿堂之路.pdf
 

书籍描述

编辑推荐
《Flash ActionScript3殿堂之路》适合有基础编程知识(不限语言)的Flash、Flex、AIR爱好者和开发人员,尤其适合ActionScript 2读者。本书还可为Java、C#等其他OOP语言爱好者学习ActionScript 3提供横向比较和导读。

媒体推荐
前言
ActionScript 3与RIA时代的到来
具有高度互动性、丰富用户体验及功能强大的客户端,是目前网络开发的迫切需求。Adobe公司的Flash Player凭借其全球97%的桌面电脑占有率和跨平台的优势,成为了事实上的下一代的RIA(Rich Internet Application,丰富因特网程序)主力。Adobe公司于2006年年中推出了强大的ActionScript 3 语言,和支持ActionScript 3 的新一代的虚拟机AVM 2。经测试,AVM 2执行ActionScript 3代码比以前的ActionScript 2 代码执行效率要快10倍以上。
ActionScript 3,与ActionScript 2和1有本质上的不同,是一门功能强大的、面向对象的、具有业界标准素质的编程语言。它是 Flash Player 运行时功能发展中的重要里程碑。ActionScript 3是快速构建Rich Internet Application的理想语言。
由于Adobe的Flex和Flash的成功,在业界已经掀起了RIA应用新浪潮!雅虎(Yahoo!)、eBay、Google都相继推出基于ActionScript的RIA应用程序和ActionScript API库。著名的应用案例有Yahoo Maps、eBay AIR拍卖程序、Google Analytics和Google Finance、微软的Wallop社区,等等。
ActionScript 3 有以下优势:
对面向对象编程(OOP)语言的完全支持。核心语言基于ECMAScript(ECMA 262)标准,对OOP架构深层优化。
彻底更新的显示对象系统架构。
采用了先进的E4X,使XML成为ActionScript 3 语言的内建数据类型(native support)。操作直白、简单。与ActionScript 2比较,极大地减轻了XML数据处理工作量。
全面支持正则表达式。正则表达式也成了ActionScript 3的内建数据类型,ActionScript 3对字符串的处理能力空前增强。
标准的DOM 3事件实现。Flash API全面支持事件机制。
异常处理机制。 异常包括信息全面、易于调试和处理。Flash API全面支持异常处理机制。
此外,ActionScript 3 积极迈向开源,赢得开源社区的欢迎。包括AVM 2虚拟机开源 ,源码赠送与Mozilla的Tamarin项目。Tamarin项目的开源,意味着ActionScript 3 虚拟机的开源。从而ActionScript 3 也将成为智慧无穷的开源社区的首选!
2007年6月11日推出了Adobe Intergrated Runtime(AIR) Beta版,正式实现新一代的RIA概念——跨系统运行时(cross-operating system)的RIA程序。首次允许RIA程序访问本地资源,并进行离线存储,跳出了浏览器的限制,模糊了浏览器和桌面程序的界限,在线和离线的界限。AIR具有革命性的前瞻视角,被业界誉为RIA的第二次革命。而ActionScript 3就是用于开发AIR程序的主要核心语言。
ActionScript 3的时代已经到来!我们正在迎接它的辉煌!
本书的目标与特色
本书目标
ActionScript 开发界缺少一本真正的以面向对象思想来讲解的书籍,缺少从ActionScript 3语言架构上来分析的书籍。无论国内还是国外目前都缺少这样一本书。很多ActionScript 开发人员都只停留在知道OOP语法、会熟练运用ActionScript 3 提供的类库API阶段,而对OOP思想和ActionScript 3 整个系统架构脉络一知半解。买椟还珠,这是很可惜的。
本书尝试以系统架构师的眼光,以面向对象思想为主轴,讲述ActionScript 3中面向对象的精髓和应用。从ActionScript 3 系统架构的高度,清楚明白地讲解ActionScript 3的API设计原因、原理和应用。
面向对象思想和ActionScript 3系统架构就是RIA开发的任督二脉,打通之后,你就会觉得所有ActionScript 3知识都是共通共融、浑然一体的,从而再学习广阔的ActionScript 3开源世界中的其他东西时,也会觉得高屋建瓴、势如破竹 、轻松如意。
在本书中,对于ActionScript 3中的面向对象讲解的广度和深度都远超过目前所有书籍。从广度上说,涵盖了OOP语法、重要API的运用、核心类包的结构……从深度上说,详细地解释了面向对象实现上的重大变化和实现细节,透彻地阐述了新一代的显示编程架构及应用。比如 ActionScript 3的几大新特色、重要的OOP法则、ActionScript 3语言本身在哪些地方使用了设计模式。从实用上说,每一个重要的应用都有实际的代码例子相结合,例如,有类绑定的种种实际做法和UIMovieClip类与Flex结合应用等。本书不仅仅介绍相关语法和运用,更重要的是解释如何设计与怎样使用。
本书希望把你真正带往ActionScript 3编程的殿堂。
本书特色
本书是一本“面向原因式”的书籍(Why-Oriented Book)。让你对所有细节的设计用意和原因清清楚楚。
以ActionScript 3 语言设计的本意和思路,深浅结合,讲解各个部分。尽可能使读者在了解ActionScript 3 语言的同时,更好地把握ActionScript 3 语言的思想。
重视实际运用,例子丰富。不算文中代码片段,仅完整类文件就近两百个,为编程提供实际的指导。本书在撰写所有部分时,力求达到两点:与实际的代码例子结合;讲述ActionScript 3 语言关于该部分的内部实现和技术细节。
以面向对象思想(OOP)为重点,例子和比喻结合。系统讲述了OOP思想及其在ActionScript 3 中的运用。并结合ActionScript 3本身的语言架构加以详细的分析。
横向比较其他优秀OOP语言。本书中有大量涉及到ActionScript 3和Java、C#等语言相比较的地方,使得已有其他OOP语言基础的读者可以快速了解ActionScript 3的独特之处,快速上手。
清楚地阐述ActionScript 2和ActionScript 3的不同及原因。对于ActionScript 3 大部分相对于ActionScript 2 的改动,本书不但一一指出,还从理论上解释为何改变,以及相关的实现,使ActionScript 2 程序员快速上手ActionScript 3 ,并对ActionScript 2代码移植有相当大的帮助。
本书为何而写
长时间以来,国内ActionScript 方面的书籍总是落后国外同类书籍一年到两年,很大程度上影响了ActionScript 在国内的推广和国内爱好者水平的提高。本书作者从事大型ActionScript 2 RIA项目开发已有数年经验,在Flash Player 8.5出现、ActionScript 3推出测试版开始,就已开始研究其架构,积累了丰富的第一手开发笔记。因此,本书的写作与国际ActionScript 3的研究发展是完全同步的。
笔者在电子工业出版社的大力协助下,以严谨的学术态度撰写本书。笔者衷心期望,本书出版时,不仅是国内ActionScript 界第一本与国际同步的书籍,也能抛砖引玉,加速推动国内ActionScript 3 的研究开发步伐。
本书为谁而写
本书所讲的知识用于Flash、Flex下的ActionScript 3应用程序开发。本书的读者应具有基本的编程知识(不限语言),至少应理解变量、循环、函数等基本编程概念。
写一本从ActionScript 3 初学者、ActionScript 3 中级爱好者到其他OOP语言(如C#、 Java)开发者都能看的书,是一件很有野心的事,事实上也难以完全做到。
但据笔者观察,国内ActionScript 爱好者水平参差不齐。有部分ActionScript 2 高手,但更多的是ActionScript 2 或1中级爱好者,以及准备从Flash Designer(Flash设计)转向ActionScript 3 的新手。更有广大的其他OOP语言的读者,比如C#、 Java等,拥有良好的OOP基础,准备转向ActionScript 3 。随着RIA革命的到来,未来还有更多的、潜在的ActionScript 爱好者。
这样的现状促使我向这个不可能的任务做一些力所能及的努力。经过分析,这几个群体有比较明显的特征,使得我可以在讲述的同时有所侧重,择善结合。
对初学者
你可能喜欢比较浅显的比喻和详细的讲解。有时告诉你原因,比简单罗列代码告诉你怎么做,可以更快让你理解根本,进入状态。本书正是这样一本Why-Oriented Book。本书与其他书的一个最大不同就是“面向原因”(Why-Oriented Book)的讲述方式,让你对每部分内容的由来清清楚楚。
如果你对ActionScript 一点都不熟,那么恭喜你,你赶上好时候了。ActionScript 3 比以往的ActionScript 2或ActionScript 1要好学很多,好记很多。原因就是ActionScript 3 的结构更加标准和统一。不信,举个小例子,在ActionScript 2 中创建一个视觉元件的实例有 attachMovie()、createChildAtDepth()、createClassObject()……等八九种方法,每种方法都有自己的参数,而且要手动管理元件深度。而在ActionScript 3 中,一切都统一为new 元件名()就可以了。深度统一且自动管理。这样的改进实在太多了!
所以抛开相对混乱的ActionScript 1和ActionScript 2,放心大胆地学习ActionScript 3吧。能直接学习ActionScript 3,绝对是新手的福气!
对于ActionScript 中级爱好者
你往往具有一定水平和能力,ActionScript 2各个方面都有涉猎,但都不深。你需要有针对性的细节点拨和思路指导。你往往不喜欢婆婆妈妈的讲解,最喜爱具体的代码例子。但往往对自己掌握的程度估计不足,对自己知道的东西不加以深究,和高手的差距就在这里。本书用章节“*”号(有相当数量)和进阶知识这两个部分来针对这个群体。
众所周知,知识的讲解应当是一个整体,不能每个知识点都有初级、中级、高级之分。你清楚的东西,对你而言就是初级。你不清楚的东西,往往就是高级。你知道并了解,但是不知道细节的东西,那就是中级。因此对于中级爱好者,我建议,在你快速翻完了本书所有“*”号和进阶知识之后,有空时你最好从头详细读一下其他章节。我相信,你绝对不虚此“读”。很多有用的知识点和ActionScript 3 技术上的实现细节,你可能还不清楚。举个小例子,比如, “加Label的continue、break的用法”,不少读者可能就不太清楚。
加油,高手的称号指日可待!
ActionScript高级爱好者
你有一定的开发经验和知识水平,知道很多ActionScript 2 细节。但是ActionScript 2 和ActionScript 3 区别如此之大,你会感觉到有点沮丧。但,沮丧不久,你就会被ActionScript 3 标准的架构、优雅的实现和无限的潜能所吸引。
你甚至发现ActionScript 3 其实比ActionScript 1、ActionScript 2要好学很多 ,好记很多。再过不了多久,你会发现ActionScript 3 是如此好用,如此方便,如此先进,以致于不可能再转回ActionScript 2了。这时候就逼你的老板用ActionScript 3开发产品吧。It’s your time。
本书中有大量地方标注了和ActionScript 2不同的地方,可以让你快速地进入ActionScript 3的工作状态。并且提供了很多ActionScript 3中独有的技术细节和小技巧,为你日后的开发扫清很多小地雷。
对C#、Java爱好者和开发者
恭喜你,其实ActionScript 3 比它前辈的任何一个版本都接近C#、Java这两种语言。你学习ActionScript 3 ,将是真正的事半功倍。
你真正想要知道的是,ActionScript 3和C#、Java有哪些不同点?ActionScript 3 编程有哪些部分需要重点学习?API有哪些不同,哪些是重点?在ActionScript 3中哪些细节需要注意?
在本书中对大部分涉及到语言差异的地方都做了标注。你要做的是,看一下每章前面的导读,抓住重点,快速浏览章节。融会贯通这些基本的不同点之后,重点掌握ActionScript 3视觉编程部分和熟悉一些关键的API。当然,我特别建议你有空时能从头详细读一遍本书,很多ActionScript 3 独有的技术细节和小技巧可能是你需要了解的。
你会发现, ActionScript 3 编程是这么的方便和美妙!ActionScript 3 这个标准的OOP语言,用起来是这么熟悉和顺手!和Flash合作编出的界面是这么漂亮优雅,易于拓展!强烈推荐你花点时间看一看第1章。
本书结构
第1部分:ActionScript 3语言基础
第2部分:ActionScript 3 面向对象编程
第3部分:ActionScript 3 核心类
第4部分:ActionScript 3主要的Flash Player API
第5部分:ActionScript 3视觉编程
如何使用本书
本书建议按照章节顺序阅读。初级爱好者读到带“*”号的章节时,如有不明白的地方可以暂时跳过,以后有时间时回头再读。每章都有“本章导读”,读者可根据具体的“章节导读”来进行阅读。
另外,本书提供了详细的章节目录、代码例子目录、表格目录等,也可以作为ActionScript 3 简要的工具书使用。在本书中,对类名、变量、代码、术语和重点句都特别用了样式来标明。
“样式和格式”中的名称 范 例
类名 !类名 ErrorEvent, EventDispatcher
变量和代码 !变量和代码 updaetAfterEvent()
重点强调句 !重点文字 被关键字final定义过的实例方法不能被重写;父类的private成员不能被重写
编程语言关键字 !关键字 instanceof
如何使用本书中的例子和源代码
随书光盘中有一个视频教程目录,为swf格式。里面有详细的视频教程教你如何更加有效地使用本书中的例子和光盘中的源代码。
勘误及反馈
读者如果对本书有意见和建议,请到笔者个人博客http://books.kingda.org上交流。
本书涉及面广,内容多,难免有所错漏。勘误信息也会第一时间在http://books.kingda.org 上公布。书中所有术语翻译参考ActionScript 3 官方文档和微软的.NET术语对照表。
致谢
感谢我的父母,亲情永远是我强大的动力!感谢我的MM,谢谢你容忍我一年多来不曾陪你逛街!
感谢我的公司和同事!我们是一流的团队,追求顶尖的RIA体验!成功属于勤奋者。
感谢电子工业出版社易飞思公司郭晶女士、何郑燕女士。多谢二位的耐心,支持我一再推迟交稿期限,给予我相对充分的时间写作。多谢二位的热情和信任,这在写书的苦闷中给了我很大的支持。在此特表感谢!
著 者

作者简介
网名“黑羽”,英文名“Kingda Sun”,浙江大学硕士。浙江大学元老级闪客,曾任蓝色理想网站Flash版版主。 现任杭州Genway Online Learning Tech Co.,Ltd 前端架构总设计师。 拥有著名的个人Flash技术博客 : www.kingda.org,Google Pagerank值高达6,被Adobe官方MXNA收录。也被国内蓝色理想BXNA等诸多聚合器收录。另拥有www.actionscript3.cn站点,专门讨论ActionScript 3 相关开发话题。 经历:第二届浙江省大学生多媒体竞赛课件类省一等奖, 动画类省二等奖。浙江大学第二届大学生多媒体作品设计竞赛一等奖。担任前端设计的NCE online课件被国家教育部评定为国际先进课件。

目录
第1部分 ActionScript 3语言基础
第1章 ActionScript 3语言介绍与开发环境 3
1.1 ActionScript 3介绍 3
1.1.1 ActionScript发展历史简述 4
1.1.2 Flash Player 9和AVM 2 5
1.1.3 Macromedia和Adobe的合并 6
1.1.4 ActionScript 3与开源世界 6
1.2 ActionScript 3的特色 6
1.2.1 核心语言新特色 7
1.2.2 Flash Player API 功能的新特色 8
1.3 ActionScript 3 程序开发工具 9
1.3.1 Flash CS3 9
1.3.2 Flex 2 、Flex 3及Flex SDK 9
1.4 *ActionScript 3程序的编译流程 10
1.5 熟悉开发环境和第一个“Hello,world”例子 10
1.5.1 在Flash CS3中创建“Hello,world” 11
1.5.2 在Flex Builder中创建“Hello, world” 12
1.6 本章小结 13
第2章 ActionScript 3语言基本元素 15
2.1 ActionScript 3中数据的本质及重要性质 15
2.1.1 *一切都是对象(Object) 15
2.1.2 ActionScript 3中数据类型概述 16
2.2 变量的声明和使用 16
2.2.1 声明变量的语法 17
2.2.2 变量命名规则 17
2.2.3 *变量的本质 18
2.2.4 *重要:值类型和引用类型的区别 19
2.2.5 基元数据类型的深入讨论* 21
2.3 使用const声明常量 23
2.4 基础(非基本)数据类型 23
2.4.1 布尔值:Boolean 24
2.4.2 数字:int、uint、Number 24
2.4.3 重要:使用int、uint、Number应当注意的事项 25
2.4.4 字符串:String 28
2.4.5 数组:Array 29
2.4.6 Object及关联数组 30
2.4.7 多维数组 32
2.4.8 Null、NaN、undefined及各自应用对象:变量的默认值 33
2.5 运算符、表达式及运用 35
2.5.1 什么是运算符、表达式?以及运算符的设计用意 35
2.5.2 在ActionScript 3中使用操作符 35
2.5.3 *运算符的本质 36
2.5.4 最常用的运算符:赋值运算符(=) 36
2.5.5 算术运算符:加、减、乘、除、模运算、求反运算 36
2.5.6 算术赋值运算符:+=、-=、*=、/=、%= 37
2.5.7 关系运算符(1):==、!=、===、!=== 38
2.5.8 关系运算符(2):>=,<=,>,<, 39
2.5.9 逻辑运算符(&&、||、!) 40
2.5.10 三元if-else运算符(?:) 41
2.5.11 typeof、is、as 41
2.5.12 *in 42
2.5.13 delete:ActionScript 3中的作用变了 42
2.5.14 优先级顺序 43
2.6 ActionScript 3的保留字 43
2.7 本章小结 44
第3章 ActionScript 3流程控制 45
3.1 什么是面向过程?看一个找书的例子 45
3.2 true和false:条件表达式的结果 47
3.3 if-else 47
3.3.1 最常用的if和if…else 47
3.3.2 if…else if … else的用法和注意点 48
3.4 循环 49
3.4.1 循环的三要素 49
3.4.2 while 50
3.4.3 do-while 50
3.4.4 for 51
3.4.5 * for…in 和for each…in 52
3.4.6 break和continue的简单用法 53
3.4.7 *控制嵌套循环的流程:break 和continue的标签用法 54
3.5 switch 57
3.6 本章小结 59
第4章 ActionScript 3中的函数及高级使用技巧 61
4.1 两种定义函数方法 61
4.1.1 函数语句定义法 61
4.1.2 函数表达式定义法 62
4.1.3 *两种定义法的区别和选择 62
4.2 参数 64
4.2.1 按值还是按引用来传入参数 64
4.2.2 设置默认参数 65
4.2.3 访问参数信息和…(rest)关键字 65
4.3 *函数的本质 66
4.3.1 函数语句定义法定义的函数对象本质 67
4.3.2 函数表达式定义法定义的函数对象本质 67
4.4 *函数高级使用技巧 68
4.4.1 技巧一:代理函数对象 68
4.4.2 技巧二:建立函数执行队列 68
4.4.3 技巧三:利用函数返回函数 70
4.4.4 技巧四:函数动态添加实例属性 72
4.4.5 技巧五:函数对象动态添加实例方法 72
4.5 本章小结 74
第2部分 ActionScript 3面向对象编程
第5章 类和对象——从定义到原理 77
5.1 第一个ActionScript 3简单的Class(类)例子 77
5.2 Class(类)和Object(对象) 79
5.2.1 Class和Object的权威定义 80
5.2.2 Class和Object的区别 81
5.3 Class的成员 81
5.4 Class和Object的创建和使用 82
5.4.1 创建Class 82
5.4.2 创建类的实例 83
5.5 Class和package(包) 83
5.6 实例属性和实例方法 84
5.6.1 如何声明实例属性 85
5.6.2 如何声明实例方法 85
5.6.3 如何访问实例属性和实例方法 86
5.7 静态属性和静态方法 88
5.7.1 静态属性和静态方法的使用场合 88
5.7.2 声明静态属性和静态方法 89
5.7.3 访问静态属性和静态方法 89
5.7.4 应用1:使用静态属性集中管理数据 90
5.7.5 应用2:使用静态属性部分实现Enumeration 91
5.7.6 应用3:实现工具类 92
5.8 构造函数 93
5.8.1 构造函数实例 94
5.8.2 构造函数只能使用public访问控制 95
5.8.3 构造函数的返回类型 95
5.9 Class的种类:动态类和密封类 96
5.10 this关键字 97
5.11 *ActionScript 3中的方法重载 99
5.12 *含有多个类的ActionScript 3类文件的标准例子 100
5.13 本章小结 102
第6章 ActionScript 3中的封装: 类的成员、类、包与访问控制 105
6.1 什么是封装 105
6.2 为什么需要封装 106
6.2.1 封装使修改代码更加容易和安全 106
6.2.2 封装让代码分成一个个相对独立的单元 107
6.2.3 封装让整个软件开发的复杂度大大降低 107
6.3 ActionScript 3中封装的几个层次 108
6.4 package(包) 109
6.4.1 包的导入(import) 109
6.4.2 使用Import避免命名冲突 111
6.4.3 package的创建和命名 112
6.5 *原理:编译器如何导入package 113
6.5.1 类路径 114
6.5.2 编译器导入package的顺序 114
6.6 类成员的访问控制 115
6.6.1 Internal:包内访问 115
6.6.2 public:完全公开 118
6.6.3 private:仅当前类可访问 118
6.6.4 protected:子类可访问 120
6.7 Getter和Setter方法 120
6.8 类(Class)的访问控制 122
6.9 包外类 123
6.10 本章小结 125
第7章 *命名空间 127
7.1 命名空间的简要解释 128
7.1.1 命名空间与一词多义 128
7.1.2 第一个命名空间的代码例子 129
7.1.3 命名空间无处不在 130
7.2 使用命名空间的流程 130
7.3 命名空间的本质 132
7.3.1 命名空间的唯一性 132
7.3.2 系统如何生成命名空间的默认uri 133
7.4 如何定义命名空间 133
7.4.1 将命名空间定义在独立的.as文件中 134
7.4.2 命名空间定义在类中 134
7.5 如何应用命名空间 135
7.6 如何引用命名空间 135
7.6.1 打开命名空间 136
7.6.2 使用命名空间名称限定符“::” 137
7.6.3 自定义命名空间和public 、private 、protected、internal 141
7.7 命名空间有哪些实际应用 143
7.8 本章小结 143
第8章 复合与继承 145
8.1 如何实现复合(Composition) 146
8.1.1 一个复合的例子 146
8.1.2 初始化复合的对象 148
8.1.3 复合与聚合的区别 150
8.2 如何实现继承 150
8.2.1 创建自定义类与ActionScript 3 默认的继承 151
8.2.2 继承的表现和一个具体例子 151
8.2.3 静态成员的继承 153
8.2.4 继承与访问控制 154
8.2.5 继承与重写(Override) 155
8.2.6 继承与私有方法:易错的误区 156
8.2.7 继承与super关键字 157
8.2.8 用final终止继承 157
8.2.9 何时使用final 158
8.3 *自定义命名空间的继承 158
8.4 何时用复合,何时用继承 161
8.5 本章小结 161
第9章 多态 163
9.1 数据类型检查和转换 164
9.2 向上转换(Upcasting) 166
9.2.1 简述里氏代换原则 167
9.2.2 向上转换(Upcasting)的代码例子 167
9.3 向下转换(Downcasting) 170
9.3.1 向下转换的两种方法 171
9.3.2 向下转换的代码例子 172
9.4 本章小结 173

第10章 *抽象类和接口 175
10.1 什么是抽象类(Abstract Class) 175
10.1.1 使用抽象类的原则 176
10.1.2 使用抽象类的例子 177
10.1.3 *如何用ActionScript 3实现真正的抽象类和抽象方法 177
10.2 什么是接口 179
10.2.1 *接口是OOP编程的重要基石 180
10.2.2 如何创建接口 181
10.2.3 如何实现接口 181
10.2.4 接口与多继承、向上转换、向下转换 184
10.2.5 接口的继承 186
10.2.6 接口类型 188
10.3 抽象类和接口的区别 188
10.3.1 何时使用抽象类,何时使用接口 189
10.3.2 *将接口和抽象类结合使用 190
10.4 本章小结 191
第3部分 ActionScript 3核心类
第11章 ActionScript 3核心类和全局函数 195
11.1 ActionScript 3中核心类和函数的变化及原因 196
11.2 核心类的数目和列表 196
11.3 核心类和函数的作用和地位 198
11.4 本章小结 198
第12章 数组:Array 199
12.1 数组(Array)的介绍 199
12.1.1 访问数组元素 199
12.1.2 数组的长度 200
12.1.3 多维数组 201
12.2 数组(Array)的基本操作 201
12.2.1 查找:indexOf、lastIndexOf 201
12.2.2 在数组首尾新增元素:push、unshift 202
12.2.3 删除数组首尾元素:pop、shift 203
12.2.4 在数组当中插入或者删除元素:灵活多变的splice 204
12.2.5 获取数组中的部分元素:slice 205
12.2.6 将多个元素或数组拼合成新的数组:concat 207
12.2.7 *数组的浅复制与深复制 208
12.2.8 排序:reverse、sort、sortOn 211
12.3 操作数组每个元素:forEach、every、 filter、map、some 214
12.3.1 5个方法的共同点 214
12.3.2 回调函数 215
12.3.3 代码示例 215
12.4 本章小结 217
第13章 字符串:String 219
13.1 CHAR在那里 219
13.2 在ActionScript 3中如何针对字符操作 220
13.2.1 运用charAt()和char CodeAt() 220
13.2.2 运用fromCharCode() 221
13.3 字符串是不变对象(immutable object) 222
13.4 ActionScript 3中的StringBuilder在哪里 223
13.5 +、+=及<、<=、>、>=在字符串操作中的重载 223
13.5.1 在ActionScript 3 中运算符的重载:+和+=的重载 224
13.5.2 关系运算符(<、<=、>、>=)的重载 224
13.6 常用的字符串操作 225
13.6.1 indexOf()的使用及与search()的区别 225
13.6.2 substring()、slice()和substr()的使用及区别 226
13.6.3 split()与正则表达式结合运用 227
13.6.4 如何一次性输入多行文本 227
13.7 实用的mx.utils.StringUtil工具类 228
13.8 本章小结 229
第14章 强大的正则表达式:RegExp 231
14.1 什么是正则表达式? 231
14.2 ActionScript 3 中的正则表达式 232
14.2.1 第一个正则表达式例子 232
14.2.2 正则表达式的两个构成部分 233
14.2.3 ActionScript 3中正则表达式的工作机制 233
14.3 正则表达式语法 234
14.3.1 正则表达式中的文字符号 234
14.3.2 正则表达式中的字符集 236
14.3.3 特殊的点号(.) 238
14.3.4 选择符 239
14.3.5 括号与分组 240
14.3.6 用正则表达式描述字符串的重复 240
14.3.7 注意正则表达式的贪婪性和懒惰性 241
14.3.8 用正则表达式来定位 242
14.3.9 正则表达式的5个标志位 243
14.3.10 正则表达式元字符优先级 243
14.4 正则表达式与字符串的结合使用详解 244
14.4.1 RegExp类的exec() 和 test() 244
14.4.2 String类的search()和match() 244
14.4.3 String类的replace()与正则表达式向后引用 245
14.5 常用的正则表达式 246
14.5.1 文本处理和输入限制常用正则表达式 246
14.5.2 网络和HTML代码方面的应用 246
14.5.3 表单验证 247
14.5.4 匹配数字 248
14.6 本章小结 248
第15章 XML数据处理 249
15.1 XML的概览 249
15.2 XML简要介绍 250
15.2.1 一个简单的XML示例 250
15.2.2 XML简明语法 251
15.2.3 如何编写一个结构优秀的XML 253
15.3 XML在ActionScript 3中的地位 254
15.3.1 E4X:更好的XML处理规范标准 255
15.3.2 ActionScript 2程序移植时,关于XML部分该如何处理 255
15.4 创建XML对象 256
15.4.1 使用构造函数创建XML对象 256
15.4.2 直接使用XML文本创建XML对象 256
15.5 使用运算符操作 XML数据 257
15.5.1 使用“.”与“@”直接访问、修改、创建和删除XML对象 258
15.5.2 使用“.”与“@”直接修改XML对象 259
15.5.3 使用“.”与“@”直接添加和删除子元素和属性 260
15.5.4 简单方便地搜索XML子元素和属性 261
15.5.5 *使用正则表达式或自定义函数搜索XML子元素和属性 263
15.6 用API实现的一些常用XML操作 264
15.7 *XML的命名空间 265
15.8 XML对象与XMLlist对象 268
15.9 本章小结 268
第16章 异常和错误的捕捉与处理 269
16.1 什么是异常和错误 269
16.1.1 一个简单的异常例子 270
16.1.2 异常的概念和在ActionScript 3中的实现 271
16.1.3 使用异常处理机制的好处 272
16.2 使用try-catch-finally处理异常 272
16.2.1 try 273
16.2.2 catch 274
16.2.3 finally 274
16.2.4 try-catch-finally的语法规则 274
16.3 使用throw抛出异常 275
16.4 自定义异常 277
16.5 ActionScript 3中异常的层次和结构 279
16.6 处理异常的原则和方式 280
16.6.1 三大提倡 281
16.6.2 三大忌讳 281
16.7 对异常事件的处理 282
16.8 本章小结 283
第4部分 ActionScript 3主要的 Flash Player API
第17章 ActionScript 3目前主要的API概览 287
17.1 ActionScript 3的API总览 287
17.2 Flash Player API架构和介绍 288
17.3 Flash CS3提供的API介绍 288
17.4 *第三方类库提供的API 289
17.4.1 Adobe官方提供的产品之外的类库 289
17.4.2 ActionScript 3 的3D应用 290
17.4.3 开源项目资源 290
17.5 本章小结 290
第18章 事件发送和处理 291
18.1 事件(Event)处理机制的产生和原理 292
18.1.1 示意图:点菜的例子 292
18.1.2 DOM3事件的执行流程 293
18.1.3 第一个事件处理代码例子 294
18.2 ActionScript 3事件机制的新特色 296
18.2.1 回顾ActionScript 1和ActionScript 2中的事件机制 296
18.2.2 ActionScript 3 事件处理机制形式上的不同 297
18.2.3 新特色:事件流机制与视图元件的紧密结合 297
18.2.4 新特色:侦听器优先级 298
18.2.5 新特色:侦听器弱引用 298
18.3 事件 298
18.3.1 Event类的属性 299
18.3.2 Event类的构造函数 299
18.3.3 Event类的方法 300
18.3.4 自定义事件类 300
18.4 侦听器 302
18.4.1 创建侦听器 303
18.4.2 侦听器中的this关键字 303
18.4.3 注册侦听器和移除侦听器 303
18.4.4 检测事件侦听器 303
18.4.5 *事件的优先级 304
18.4.6 *事件的弱引用 304
18.5 自定义类发送事件的3种方式 305
18.5.1 继承EventDispatcher类 305
18.5.2 复合EventDispatcher对象 307
18.5.3 *实现IEventDispatcher接口 308
18.6 本章小结 310
第19章 网络通信基础 311
19.1 ActionScript 3网络通信的流程 311
19.1.1 构建通信请求对象 312
19.1.2 发出数据请求 313
19.1.3 侦听器函数 313
19.2 读取3种数据格式的例子 314
19.2.1 读取文本格式数据 314
19.2.2 读取值对格式数据 316
19.2.3 读取二进制格式数据 317
19.2.4 监控加载进度 319
19.3 getURL()的继承人:navigateToURL() 319
19.4 提交数据的例子 320
19.5 简述安全模型 321
19.5.1 沙箱模型 321
19.5.2 跨域文件:crossdomain.xml 322
19.5.3 *授予脚本访问权限:Security.allowDomain() 323
19.6 本章小结 324
第5部分 ActionScript 3视觉编程
第20章 ActionScript 3视觉编程精要 327
20.1 什么是显示对象 327
20.1.1 ActionScript 3中显示对象等级结构 328
20.1.2 显示列表:显示对象模型 329
20.2 ActionScript 3中显示对象的种类 330
20.2.1 ActionScript 2中的MovieClip 330
20.2.2 ActionScript 3 显示对象种类划分:一个统一、两个层次 331
20.3 *显示对象类库架构 332
20.3.1 InteractiveObject类和非InteractiveObject类 332
20.3.2 容器类和非容器类 333
20.3.3 Sprite和MovieClip 334
20.3.4 *非Flash API的几个显示对象类 334
20.4 ActionScript 3视觉架构的优越性 334
20.4.1 更高效的渲染,更好的内存利用 335
20.4.2 自动化的深度管理 335
20.4.3 完整遍历显示列表 335
20.4.4 列表外的显示对象 336
20.4.5 更易于创建自定义的显示对象 336
20.5 本章小结 336
第21章 DisplayObject类与矢量图、位图 337
21.1 显示对象的一些基本概念 337
21.1.1 显示对象的可视属性列表 338
21.1.2 显示对象的其他属性 339
21.2 所有显示对象的抽象父类:DisplayObject类 340
21.3 矢量图 340
21.3.1 Graphics对象 341
21.3.2 绘制矢量图的例子 342
21.4 位图 342
21.4.1 位图和像素 342
21.4.2 Bitmap和BitmapData 343
21.4.3 使用BitmapData创建和改变位图 343
21.5 遮罩 345
21.5.1 定义普通遮罩 345
21.5.2 定义Alpha通道遮罩 346
21.6 文本 348
21.6.1 创建文本 348
21.6.2 捕获HTML文本超链接的信息 348
21.6.3 在文本框中追加文本请使用高效率的appendText() 350
21.7 碰撞检测 351
21.8 自定义显示对象类 352
21.9 本章小结 353
第22章 容器:DisplayObjectContainer与Sprite、MovieClip 355
22.1 容器的概念和实现 355
22.1.1 DisplayObjectContainer类 356
22.1.2 最轻量的容器:Sprite类 356
22.1.3 一个自定义容器类的例子 357
22.2 添加、删除视觉元件 358
22.2.1 Flash程序中所有显示对象的添加流程 358
22.2.2 addChild方法、removeChild方法和contains方法 359
22.2.3 重要:添删显示对象的注意点 359
22.3 深度管理 363
22.3.1 深度的产生顺序和一个注意点 363
22.3.2 addChildAt和removeChildAt 364
22.3.3 交换不同深度的对象:swapChildren和swapChildrenAt 365
22.3.4 重设列表中已有对象的深度:setChildIndex 365
22.3.5 操作深度的具体代码例子 366
22.4 访问和遍历容器子显示对象 367
22.4.1 3种访问方式的比较和选择 368
22.4.2 通过深度访问子显示对象 368
22.4.3 遍历容器的子显示对象 370
22.4.4 通过name访问显示对象 372
22.4.5 通过坐标访问显示对象 372
22.5 MovieClip(影片剪辑) 374
22.5.1 MovieClip的播放 374
22.5.2 为何在Flash创作工具中依然可以使用点号加影片实例名 访问子影片 375
22.5.3 未公开的API:方便实用的addFrameScript() 376
22.6 加载外部图像、SWF文件 377
22.6.1 加载SWF文件示例 377
22.6.2 域和安全性 378
22.6.3 AVM2的SWF文件与AVM1的SWF通信 379
22.6.4 访问被加载SWF文件的参数及访问网页传入的 参数(flashvars) 379
22.7 本章小结 380
第23章 Flash CS3:库元件的类绑定与Stage、文档类 381
23.1 类绑定的好处、原理和第一个例子 382
23.1.1 第一个类绑定的例子:自定义标签按钮 382
23.1.2 Flash创作工具中的类绑定 385
23.1.3 帧代码和类绑定的角色比较 385
23.1.4 绑定的选择:MovieClip子类和Sprite子类 386
23.2 如何在绑定类中访问影片内的子显示元件 386
23.3 绑定类中访问剪辑子元件的两种方法 388
23.3.1 手工声明public属性方法 388
23.3.2 自定义新属性方法 390
23.4 3种不同的类绑定 392
23.4.1 自动生成的类绑定及用代码直接生成库元件对象 392
23.4.2 元件与独立的类绑定 393
23.4.3 让不同的库元件继承自共同的类 394
23.5 舞台与文档类 396
23.6 本章小结 396
第24章 显示编程与事件、人机交互 397
24.1 *事件的事件流(Event Flow)机制 397
24.1.1 事件流机制的3个阶段 398
24.1.2 事件currentTarget属性和target属性 398
24.1.3 *事件侦听时的事件流阶段 399
24.1.4 *事件都能冒泡吗? 399
24.1.5 说明事件流机制的例子 399
24.2 鼠标相关事件 400
24.2.1 鼠标事件对象的目标 402
24.2.2 单击和双击、鼠标按下和松开 403
24.2.3 鼠标悬停和鼠标移走 405
24.2.4 *用代码模拟鼠标输入 407
24.3 键盘相关事件 409
24.3.1 监听键盘输入的例子 409
24.3.2 全局监听键盘事件 410
24.3.3 Tab键与tabChildren 410
24.4 拖曳、鼠标跟随 412
24.4.1 拖曳 412
24.4.2 鼠标跟随 413
24.5 本章小结 414
第25章 ActionScript 3动画编程 415
25.1 动画编程原理 415
25.1.1 TimerEvent.TIMER和Event.ENTER_FRAME比较 416
25.1.2 Event.ENTER_FRAME事件与ActionScript 2中的onEnterFrame 416
25.2 代码绘制 416
25.3 改变显示对象属性 418
25.4 使用Timer类实现动画效果 421
25.5 借助fl.transitions包中的现有类创建动画代码 422
25.5.1 Tween类的多种用法 423
25.5.2 TransitionManager的用法 424
25.6 Flash 创作工具与动画编程的结合: Animator的运用 425
25.6.1 原理:Motion XML的构造和Animator的使用 425
25.6.2 具体演示和代码实例 428
25.6.3 Animator使用技巧和资源 431
25.7 本章小结 432
第26章 *Flash创作工具和Flex协作开发组件 433
26.1 浅谈Flash CS3组件与类绑定的剪辑元件 433
26.2 Flex组件与Flash CS3创作内容如何结合 434
26.2.1 Flex组件架构对显示对象的要求 434
26.2.2 Flex Component Kit for Flash CS3的安装和使用 434
26.2.3 Flash CS3和Flex的桥梁:UIMovieClip 435
26.3 如何开发UIMovieClip组件 435
26.4 一个纯代码UIMovieClip组件的例子 435
26.5 本章小结 438
结束语   439
附录A   441
A.1 常用字符的ASCII码表 441
A.2 书中代码示例索引 441
参考文献  447

文摘
前言
ActionScript 3与RIA时代的到来
具有高度互动性、丰富用户体验及功能强大的客户端,是目前网络开发的迫切需求。Adobe公司的Flash Player凭借其全球97%的桌面电脑占有率和跨平台的优势,成为了事实上的下一代的RIA(Rich Internet Application,丰富因特网程序)主力。Adobe公司于2006年年中推出了强大的ActionScript 3 语言,和支持ActionScript 3 的新一代的虚拟机AVM 2。经测试,AVM 2执行ActionScript 3代码比以前的ActionScript 2 代码执行效率要快10倍以上。
ActionScript 3,与ActionScript 2和1有本质上的不同,是一门功能强大的、面向对象的、具有业界标准素质的编程语言。它是 Flash Player 运行时功能发展中的重要里程碑。ActionScript 3是快速构建Rich Internet Application的理想语言。
由于Adobe的Flex和Flash的成功,在业界已经掀起了RIA应用新浪潮!雅虎(Yahoo!)、eBay、Google都相继推出基于ActionScript的RIA应用程序和ActionScript API库。著名的应用案例有Yahoo Maps、eBay AIR拍卖程序、Google Analytics和Google Finance、微软的Wallop社区,等等。
ActionScript 3 有以下优势:
对面向对象编程(OOP)语言的完全支持。核心语言基于ECMAScript(ECMA 262)标准,对OOP架构深层优化。
彻底更新的显示对象系统架构。
采用了先进的E4X,使XML成为ActionScript 3 语言的内建数据类型(native support)。操作直白、简单。与ActionScript 2比较,极大地减轻了XML数据处理工作量。
全面支持正则表达式。正则表达式也成了ActionScript 3的内建数据类型,ActionScript 3对字符串的处理能力空前增强。
标准的DOM 3事件实现。Flash API全面支持事件机制。
异常处理机制。 异常包括信息全面、易于调试和处理。Flash API全面支持异常处理机制。
此外,ActionScript 3 积极迈向开源,赢得开源社区的欢迎。包括AVM 2虚拟机开源 ,源码赠送与Mozilla的Tamarin项目。Tamarin项目的开源,意味着ActionScript 3 虚拟机的开源。从而ActionScript 3 也将成为智慧无穷的开源社区的首选!
2007年6月11日推出了Adobe Intergrated Runtime(AIR) Beta版,正式实现新一代的RIA概念——跨系统运行时(cross-operating system)的RIA程序。首次允许RIA程序访问本地资源,并进行离线存储,跳出了浏览器的限制,模糊了浏览器和桌面程序的界限,在线和离线的界限。AIR具有革命性的前瞻视角,被业界誉为RIA的第二次革命。而ActionScript 3就是用于开发AIR程序的主要核心语言。
ActionScript 3的时代已经到来!我们正在迎接它的辉煌!
本书的目标与特色
本书目标
ActionScript 开发界缺少一本真正的以面向对象思想来讲解的书籍,缺少从ActionScript 3语言架构上来分析的书籍。无论国内还是国外目前都缺少这样一本书。很多ActionScript 开发人员都只停留在知道OOP语法、会熟练运用ActionScript 3 提供的类库API阶段,而对OOP思想和ActionScript 3 整个系统架构脉络一知半解。买椟还珠,这是很可惜的。
本书尝试以系统架构师的眼光,以面向对象思想为主轴,讲述ActionScript 3中面向对象的精髓和应用。从ActionScript 3 系统架构的高度,清楚明白地讲解ActionScript 3的API设计原因、原理和应用。
面向对象思想和ActionScript 3系统架构就是RIA开发的任督二脉,打通之后,你就会觉得所有ActionScript 3知识都是共通共融、浑然一体的,从而再学习广阔的ActionScript 3开源世界中的其他东西时,也会觉得高屋建瓴、势如破竹 、轻松如意。
在本书中,对于ActionScript 3中的面向对象讲解的广度和深度都远超过目前所有书籍。从广度上说,涵盖了OOP语法、重要API的运用、核心类包的结构……从深度上说,详细地解释了面向对象实现上的重大变化和实现细节,透彻地阐述了新一代的显示编程架构及应用。比如 ActionScript 3的几大新特色、重要的OOP法则、ActionScript 3语言本身在哪些地方使用了设计模式。从实用上说,每一个重要的应用都有实际的代码例子相结合,例如,有类绑定的种种实际做法和UIMovieClip类与Flex结合应用等。本书不仅仅介绍相关语法和运用,更重要的是解释如何设计与怎样使用。
本书希望把你真正带往ActionScript 3编程的殿堂。
本书特色
本书是一本“面向原因式”的书籍(Why-Oriented Book)。让你对所有细节的设计用意和原因清清楚楚。
以ActionScript 3 语言设计的本意和思路,深浅结合,讲解各个部分。尽可能使读者在了解ActionScript 3 语言的同时,更好地把握ActionScript 3 语言的思想。
重视实际运用,例子丰富。不算文中代码片段,仅完整类文件就近两百个,为编程提供实际的指导。本书在撰写所有部分时,力求达到两点:与实际的代码例子结合;讲述ActionScript 3 语言关于该部分的内部实现和技术细节。
以面向对象思想(OOP)为重点,例子和比喻结合。系统讲述了OOP思想及其在ActionScript 3 中的运用。并结合ActionScript 3本身的语言架构加以详细的分析。
横向比较其他优秀OOP语言。本书中有大量涉及到ActionScript 3和Java、C#等语言相比较的地方,使得已有其他OOP语言基础的读者可以快速了解ActionScript 3的独特之处,快速上手。
清楚地阐述ActionScript 2和ActionScript 3的不同及原因。对于ActionScript 3 大部分相对于ActionScript 2 的改动,本书不但一一指出,还从理论上解释为何改变,以及相关的实现,使ActionScript 2 程序员快速上手ActionScript 3 ,并对ActionScript 2代码移植有相当大的帮助。
本书为何而写
长时间以来,国内ActionScript 方面的书籍总是落后国外同类书籍一年到两年,很大程度上影响了ActionScript 在国内的推广和国内爱好者水平的提高。本书作者从事大型ActionScript 2 RIA项目开发已有数年经验,在Flash Player 8.5出现、ActionScript 3推出测试版开始,就已开始研究其架构,积累了丰富的第一手开发笔记。因此,本书的写作与国际ActionScript 3的研究发展是完全同步的。
笔者在电子工业出版社的大力协助下,以严谨的学术态度撰写本书。笔者衷心期望,本书出版时,不仅是国内ActionScript 界第一本与国际同步的书籍,也能抛砖引玉,加速推动国内ActionScript 3 的研究开发步伐。
本书为谁而写
本书所讲的知识用于Flash、Flex下的ActionScript 3应用程序开发。本书的读者应具有基本的编程知识(不限语言),至少应理解变量、循环、函数等基本编程概念。
写一本从ActionScript 3 初学者、ActionScript 3 中级爱好者到其他OOP语言(如C#、 Java)开发者都能看的书,是一件很有野心的事,事实上也难以完全做到。
但据笔者观察,国内ActionScript 爱好者水平参差不齐。有部分ActionScript 2 高手,但更多的是ActionScript 2 或1中级爱好者,以及准备从Flash Designer(Flash设计)转向ActionScript 3 的新手。更有广大的其他OOP语言的读者,比如C#、 Java等,拥有良好的OOP基础,准备转向ActionScript 3 。随着RIA革命的到来,未来还有更多的、潜在的ActionScript 爱好者。
这样的现状促使我向这个不可能的任务做一些力所能及的努力。经过分析,这几个群体有比较明显的特征,使得我可以在讲述的同时有所侧重,择善结合。
对初学者
你可能喜欢比较浅显的比喻和详细的讲解。有时告诉你原因,比简单罗列代码告诉你怎么做,可以更快让你理解根本,进入状态。本书正是这样一本Why-Oriented Book。本书与其他书的一个最大不同就是“面向原因”(Why-Oriented Book)的讲述方式,让你对每部分内容的由来清清楚楚。
如果你对ActionScript 一点都不熟,那么恭喜你,你赶上好时候了。ActionScript 3 比以往的ActionScript 2或ActionScript 1要好学很多,好记很多。原因就是ActionScript 3 的结构更加标准和统一。不信,举个小例子,在ActionScript 2 中创建一个视觉元件的实例有 attachMovie()、createChildAtDepth()、createClassObject()……等八九种方法,每种方法都有自己的参数,而且要手动管理元件深度。而在ActionScript 3 中,一切都统一为new 元件名()就可以了。深度统一且自动管理。这样的改进实在太多了!
所以抛开相对混乱的ActionScript 1和ActionScript 2,放心大胆地学习ActionScript 3吧。能直接学习ActionScript 3,绝对是新手的福气!
对于ActionScript 中级爱好者
你往往具有一定水平和能力,ActionScript 2各个方面都有涉猎,但都不深。你需要有针对性的细节点拨和思路指导。你往往不喜欢婆婆妈妈的讲解,最喜爱具体的代码例子。但往往对自己掌握的程度估计不足,对自己知道的东西不加以深究,和高手的差距就在这里。本书用章节“*”号(有相当数量)和进阶知识这两个部分来针对这个群体。
众所周知,知识的讲解应当是一个整体,不能每个知识点都有初级、中级、高级之分。你清楚的东西,对你而言就是初级。你不清楚的东西,往往就是高级。你知道并了解,但是不知道细节的东西,那就是中级。因此对于中级爱好者,我建议,在你快速翻完了本书所有“*”号和进阶知识之后,有空时你最好从头详细读一下其他章节。我相信,你绝对不虚此“读”。很多有用的知识点和ActionScript 3 技术上的实现细节,你可能还不清楚。举个小例子,比如,“加Label的continue、break的用法”,不少读者可能就不太清楚。
加油,高手的称号指日可待!
ActionScript高级爱好者
你有一定的开发经验和知识水平,知道很多ActionScript 2 细节。但是ActionScript 2 和ActionScript 3 区别如此之大,你会感觉到有点沮丧。但,沮丧不久,你就会被ActionScript 3 标准的架构、优雅的实现和无限的潜能所吸引。
你甚至发现ActionScript 3 其实比ActionScript 1、ActionScript 2要好学很多 ,好记很多。再过不了多久,你会发现ActionScript 3 是如此好用,如此方便,如此先进,以致于不可能再转回ActionScript 2了。这时候就逼你的老板用ActionScript 3开发产品吧。It’s your time。
本书中有大量地方标注了和ActionScript 2不同的地方,可以让你快速地进入ActionScript 3的工作状态。并且提供了很多ActionScript 3中独有的技术细节和小技巧,为你日后的开发扫清很多小地雷。
对C#、Java爱好者和开发者
恭喜你,其实ActionScript 3 比它前辈的任何一个版本都接近C#、Java这两种语言。你学习ActionScript 3 ,将是真正的事半功倍。
你真正想要知道的是,ActionScript 3和C#、Java有哪些不同点?ActionScript 3 编程有哪些部分需要重点学习?API有哪些不同,哪些是重点?在ActionScript 3中哪些细节需要注意?
在本书中对大部分涉及到语言差异的地方都做了标注。你要做的是,看一下每章前面的导读,抓住重点,快速浏览章节。融会贯通这些基本的不同点之后,重点掌握ActionScript 3视觉编程部分和熟悉一些关键的API。当然,我特别建议你有空时能从头详细读一遍本书,很多ActionScript 3 独有的技术细节和小技巧可能是你需要了解的。
你会发现, ActionScript 3 编程是这么的方便和美妙!ActionScript 3 这个标准的OOP语言,用起来是这么熟悉和顺手!和Flash合作编出的界面是这么漂亮优雅,易于拓展!强烈推荐你花点时间看一看第1章。
本书结构
第1部分:ActionScript 3语言基础
第2部分:ActionScript 3 面向对象编程
第3部分:ActionScript 3 核心类
第4部分:ActionScript 3主要的Flash Player API
第5部分:ActionScript 3视觉编程
如何使用本书
本书建议按照章节顺序阅读。初级爱好者读到带“*”号的章节时,如有不明白的地方可以暂时跳过,以后有时间时回头再读。每章都有“本章导读”,读者可根据具体的“章节导读”来进行阅读。
另外,本书提供了详细的章节目录、代码例子目录、表格目录等,也可以作为ActionScript 3 简要的工具书使用。在本书中,对类名、变量、代码、术语和重点句都特别用了样式来标明。
著 者

内容简介
《Flash ActionScript3殿堂之路》共分5个部分。第1部分:ActionScript 3语言基础;第2部分:ActionScript 3面向对象编程;第3部分:ActionScript 3 核心类;第4部分:ActionScript 3主要的Flash Player API;第5部分:ActionScript 3 视觉编程。附书光盘内容为书中实例源文件和本书中典型章节的操作演示视频教程。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多