项目1 初识ActionScript 3.0
项目概述
本项目在介绍ActionScript 3.0(简称AS 3.0)发展历程和特点之后,通过欣赏经典带有脚本的Flash动画作品,激发学习者的学习兴趣,以此来了解ActionScript 3.0应用领域,然后通过案例来熟悉Flash CS6代码编辑的工作环境,为进一步学习和了解ActionScript 3.0做好准备。
知识目标
- 了解AS 3.0的发展历史和特点
- 了解AS 3.0的应用领域
- 熟悉Flash CS6的动作面板和代码片断面板按钮与选项的功能
- 了解AS 3.0的参数设置以及程序测试与调试的方法
技能目标
- 能熟练地使用动作面板与代码片断面板进行AS 3.0代码设计
- 能使用二种不同的方法在Flash中写入AS 3.0代码
- 能熟练地使用Flash对AS 3.0代码进行测试与调试
1.1 任务1——走近ActionScript 3.0
1.1.1 知识储备——ActionScript 3.0发展历程和特点
ActionScript简称为AS,已有十多年的发展历程,最初是一种简单的脚本语言,现在最新版本为3.0,是一种面向对象的编程语言,语法类似JavaScript,但它的语法更加严谨,更富于结构化,多用于Flash互动性、娱乐性、实用性开发,网页制作和RIA应用程序开发。
1. ActionScript 3.0发展历程
在早期的Flash动画设计中,设计师们迫切需要一种脚本语言可以控制动画元素,将更丰富的样式和动作呈献给用户,或实现与用户的交互等。因此,Macromedia公司就根据JavaScript和ECMAScript等语言,为Flash 2.0开发了一种简单的脚本语言,即ActionScript的前身,当时嵌入Flash动画的脚本并没有统一的名字,其功能也比较单一,仅支持很少的内置函数和一些控制影片播放和停止的方法,包括gotoAndPlay、nextFrame和nextScene等动作。
随着Flash软件的发展,Macromedia逐渐加大了对这种脚本语言的开发力度,在1998年5月发布的Flash 3.0中开始支持加载外部的Flash影片(loadMovie)。在1999年6月发布的Flash 4.0开始支持多数编程语言都拥有的诸如声明变量、编写循环和条件语句等功能。
在2000年8月发布的Flash 5.0中,这一脚本语言正式获得了ActionScript的名称,这就是ActionScript 1.0,在2002年发布的Flash MX版本中,ActionScript已经逐渐发展成为一种完善的面向过程的脚本语言。ActionScript的出现,极大地激发了Flash开发者的创作热情,几乎Flash软件的每一次大的改进,都是ActionScript技术的一次飞跃。
2003年9月,Macromedia公司发布了Flash MX 2004,此版本是Flash的一个标志性产品,其对日趋成熟的ActionScript进行了进一步的升级和改进,推出了ActionScript 2.0,其重新编写了代码的规范,增强了对流媒体和网络程序的处理,引入了部分面向对象编程的概念,首次提出了类的概念、属性和方法。ActionScript 2.0是Macromedia公司对未来互联网应用的一种富有远见的探索。
2006年春,Macromedia发布了Flex Builder 2.0及Flash Player 8.5,同时发布了ActionScript 3.0,与之前的ActionScript 2.0相比,它几乎是一种全新的编程语言,其具备完全面向对象编程的特征,所有代码都基于类——对象——实例模式,拥有更可靠的编程模型,同时引入了一个新的高度优化的 ActionScript Virtual Machine(AVM2),与 AVM1 相比,AVM2 的性能有了显著的提高,这使AS 3.0代码的执行速度几乎比以前的AS 2.0代码快了10倍。
在Adobe公司收购Macromedia公司之后,于2007年4月与2008年9月分别推出了Flash CS3和Flash CS4,将Flash作为整合在Adobe Creative Suite(Adobe创意套件)的重要组成部分。在这两个版本的Flash中,Adobe重新设计命名空间的结构并增强了对面向对象的支持,并在其内置的Flash Player 9和Flash Player 10中,增加了针对ActionScript 3.0而完全重新编写的虚拟机AVM2。随着Adobe Flash CS5和CS6的发布,Adobe改进了Flash中的代码编辑器,提供了全新的代码片段面板,帮助用户快速存储可复用的代码块,提高了ActionScript脚本的编写效率。
2. ActionScript 3.0的特点
ActionScript 3.0脚本语言是根据JavaScript脚本语言衍生而来的,但是由于这两种语言的执行平台、应用领域有根本的区别,所以ActionScript 3.0具有如下特点。
(1)语法更加严谨
JavaScript是一种弱类型语言,在JavaScript中,数据类型的划分以及变量的使用相对较为宽松,用户无需声明变量即可使用,同时也不需要为变量定义数据类型。与JavaScript不同,ActionScript是一种强类型语言,其语法更加严谨,在使用变量前,用户必须声明这一变量,并为变量赋予数据类型。同理,函数、对象等也必须有一个指定的数据类型。
(2)依托虚拟机执行
JavaScript是依托Web浏览器执行的语言,在不同类型的Web浏览器中,对JavaScript的支持程度有所区别,因此用户在编写JavaScript脚本时,必须考虑到平台的特色和支持程度。而ActionScript则是完全依托统一的AVM虚拟机在操作系统中执行的,在编写ActionScript脚本时,用户无需考虑平台的特殊性,只需专注于代码的开发即可。
(3)支持最新E4X标准
在JavaScript中,用户如需要通过XML数据实现对数据库的快速读取,只能通过Ajax技术,以及XML HttpRequest等JavaScript的特殊对象实现,目前尚无一款Web浏览器支持最新E4X标准。ActionScript 3.0脚本语言的虚拟机支持最新的E4X技术,其将XML数据视为普通的对象,通过简单的Load方法即可调取和遍历,提高了程序与后台数据交互的效率。
(4)代码的安全性
JavaScript是书写于Web浏览器中的脚本语言,任何用户都可通过Web浏览器或URL获取服务器上存储的JavaScript脚本代码。ActionScript是基于虚拟机执行的脚本语言,用户在发布ActionScript脚本时,必须将其编译为SWF、AIR、EXE或APP等格式的可执行程序。因此,使用ActionScript脚本更加安全,其他用户无法直接查看ActionScript脚本代码。
1.1.2 知识储备——ActionScript 3.0程序开发工具
作为一款新兴的脚本语言,ActionScript 3.0可以从多种集成开发环境(Integrated Development Environment,IDE)中获得支持,可以适应从程序员到设计师等一系列用户的需求。
1. Adobe Flash
Flash是最早支持ActionScript的软件,也是目前应用最广泛的ActionScript开发环境。Flash被称作“最灵活的前台”,可以将动画设计、图形绘制、图像处理以及ActionScript代码编写完美地结合在一起,制作出各种丰富的动画。
Flash具有强大的矢量图形绘制以及动画制作工具,其面向的用户通常是以动画设计为主的设计师和具有一定动画制作能力的程序员。Flash目前最新的版本为CS6,如图1-1A所示。
虽然Flash软件的编辑速度缓慢,代码的编写环境也不太适合专业的程序员,但是其在图像和动画设计方面有巨大的优势。对于互动设计制作者来说,使用Flash完全能够满足各种项目设计制作的要求,因此Flash仍然是多媒体项目设计师的首选,虽然这些项目中同样需要完成大量的代码编辑工作。本教程也将以Flash作为ActionScript代码编写的工作环境。
2. Adobe Flash Builder
随着ActionScript的功能不断完善,越来越多的程序员开始学习和使用ActionScript来编写各种桌面程序和互联网应用程序,Flash的局限性也体现了出来,Macromedia公司专门开发了面向程序员的IDE,即Flex Builder。
最初的Flex Builder是作为一个J2EE(Java 2 Platform Enterprise Edition,Java2平台企业版,Sun公司为企业级应用推出的标准平台)的应用,或者说是以JSP(Java Server Pages,Java服务网页,由Sun公司倡导和许多公司参与共同建立的一种网页动态服务标准)标签库发布的产品。
Flex可以把运行中的MXML(Magic Extensible Markup Language,魔术般的可扩展标记语言,Flex Builder使用的一种XML子集)和ActionScript脚本编译成为Flash应用程序(二进制的SWF文件)。随着Flash CS3的升级以及ActionScript 3.0的发布,Flex Builder 3.0也于2008年3月面世,支持将RIA程序制作为HTML的在线版本,或直接打包为AIR桌面程序,增加了更多视觉效果的编辑,并提供了许多强大的组件。
2009年6月1日,Adobe宣布Flex Builder4.0将改名为Flash Builder 4.0,这是Adobe官方重新设计和开发的一款独立软件,是专为程序员准备的权威开发环境,使用界面非常友好,支持RIA(Rich Internet Application)程序开发和部署,其在代码开发和编译效率方面要优于Flash,如图1-1B所示。
图1-1 Flash CS6和Flash Builder软件界面
3. Flash Develop
除了由Adobe官方发布的IDE以外,Flash Develop也可以编写和编译ActionScript 3.0的程序。Flash Develop是由Mika Palmu发布的免费IDE,完全由微软Visual Studio .NET 2.0编写,是目前体积最小的ActionScript IDE,安装简便,使用方便。它支持项目管理,可以实现ActionScript的自动完成和浏览,并能进行代码检查,还集成了SWF播放器和Socket日志,Layout窗口,能自定义添加类库,实现开发和测试的一体化,如图1-2A所示。
图1-2 FlashDevelop和Eclipse软件界面
4. Eclipse
Java脚本语言的开发人员对Eclipse都非常熟悉,但Eclipse并不仅仅是一个Java开发工具,它同样可以支持ActionScript 3.0的脚本开发。因为从本质上讲,Eclipse仅仅是一个开发平台,它与具体语言无关。Eclipse提供了框架服务,通过插件构建不同语言的开发环境。
由于Eclipse中的每样东西都是插件,只要为Eclipse装配支持ActionScript 3.0的插件,就能使用Eclipse开发ActionScript 3.0应用程序。它虽然不是Adobe开发的软件,但却是最受程序员欢迎的开发工具。无论开发AS3还是Java,甚至C++和Python,都仅仅是插件的不同,开发者面对的是统一的集成开发环境,所有开发人员都有相同的开发平台。Eclipse是免费的,支持多种操作系统,如图1-2B所示。
1.1.3 知识储备——ActionScript 3.0的应用
ActionScript 3.0以丰富的SDK资源、强大的功能、规范化的代码编写方式以及跨平台和广泛的用户群体等优势,逐渐在多个领域中大显身手。
1. 动画制作
作为以控制动画播放起家的脚本语言,ActionScript 3.0在动画制作方面拥有强大的功能。例如,通过实时绘图,ActionScript 3.0可以制作逼真的动画,这是人的手工制作无法比拟的,减少了使用者对工具的操作,即使设计者本身鼠绘之类的操作水平不高,也仍然可以做出超炫的动画,如图1-3所示。
图1-3 ActionScript 3.0制作的动画
2. 交互游戏
对于大多数的Flash学习者来说,制作Flash游戏一直是一项很吸引人、也很有趣的技术,甚至许多发烧友都以制作精彩的Flash游戏作为主要的目标。随着ActionScript 3.0的发展,Flash已经不再仅局限于制作简单的交互动画程序,而是致力于通过复杂的动态脚本编程制作出各种各样有趣、精彩的Flash互动游戏,互联网上植物大战僵尸、开心农场、弹弹堂、人人派对等都是利用ActionScript 3.0来开发的,如图1-4所示。
图1-4 ActionScript 3.0制作的游戏
3. 应用程序
ActionScript 3.0和其他编程语言一样,可以用于编写各种应用程序,如视频播放器、音乐播放器、电子相册、计算器等,特别是可以利用ActionScript 3.0开发视频音乐播放器,互联网中98%的播放器都是用ActionScript 3.0开发的,如图1-5所示。
图1-5 ActionScript 3.0制作的视频播放器
4. 特效
ActionScript 3.0特效也非常丰富,包括各种滤镜、混合模式、色彩模式等,除此之外,ActionScript 3.0还支持3D特效,支持对各种对象的3D控制,如图1-6所示。
图1-6 ActionScript 3.0特效
5. 富互联网应用
早在ActionScript 2.0出现时,Macromedia就提出过以构建互联网应用为核心的Flash程序,随着网络技术的发展和ActionScript 3.0技术的成熟,富互联网应用RIA(Rich Internet Applications)逐渐成为现实,作为ActionScript 3.0技术的发行者,Adobe开发了大量富互联网应用程序,如图1-7所示。
6. 智能手机应用
Flash Lite是Adobe针对移动开发的第一代解决方案,它更像是移动电话的Flash播放器(Flash Player)版本,有了这个播放器,我们就可以在绝大多数的智能手机上播放Flash动画,甚至还能享受Flash游戏程序带来的乐趣。
随着移动设备迅速发展,连智能手机都开始运用“双核”甚至“四核”技术了,完全有能力运行更复杂的程序。2010年,Adobe公司成功地将AIR技术引入移动平台,从此一举打开了通往移动领域的大门。
图1-7 富网络应用程序
从Flash CS5.5开始,Flash新增了对Android和iOS两个移动平台的支持,用户可以通过AIR for Android命令和AIR for iOS命令,将Flash动画转换为可以在Android系统和iOS系统中运行的文件,也可以通过新建Adobe AIR for Android和AIR for iOS文档,在Flash中完成手机应用程序的制作,然后通过发布设置完成程序的发布。智能手机的技术发展已经为Flash的传播提供了技术保障,移动平台将会给Flash动画产业带来巨大的商业空间。