本节书摘来自异步社区《Adobe Flash CS4 ActionScript 3.0中文版经典教程》一书中的ActionScript 3.0简介,作者: 【美】Adobe公司 更多章节内容可以访问云栖社区“异步社区”公众号查看。
ActionScript 3.0简介
在开始学习本书课程之前,最好花点时间了解一下ActionScript的历史以及Adobe ActionScript 3.0如何适用于Adobe Flash和Flash平台。
Flash和ActionScript的简要历史
自从Flash在1996年发布以来,Flash和ActionScript是同步发展的。当前,将Flash CS4所提供的设计和动画工具与ActionScript 3.0的高级交互功能相结合,它提供了功能更为强大、使用更为广泛的开发环境;但是,ActionScript仍然是Flash家庭的一部分。
在Flash的前3个版本中,没有编程工具,交互性也就是使用“动作”面板中的简单几个拖拉选项。这些动作允许导航到Flash时间轴和创建URL链接,仅此而已。
Flash 4是允许使用简单脚本语言来输入代码的第一个版本,称为ActionScript。在Flash 5中,ActionScript得到了更大的发展,并已经成为正式的官方脚本语言。自那以后,在每个版本的Flash中,ActionScript的功能都得到了增强,提供了对动画、文字、声音、视频、数据等的交互控制。在2003年,发布了ActionScript 2.0,它进入了面向对象语言(如Java和C#)的行列。在第4课中,你将学习到有关面向对象编程(OOP)的更多信息。
有些编程人员开始会对ActionScript作为编程工具更感兴趣,他们发现,ActionScript 2.0即使在功能上可以与其他语言相抗衡,但是其在性能上却没有竞争优势。这是因为每个版本的ActionScript都是建立在前一个版本的基础上,所有事情都要从最简单的开始。Flash Player最初并不是设计用来创建高性能的应用程序和游戏的,然而开发者使用它就是为了这些目的。显然,需要从头开始重新开发新版本的ActionScript。
在2006年,Adobe开发了ActionScript 3.0,在增加了一些新功能的同时,也极大地改善了性能。Flash CS3是Flash中第一个与 ActionScript 3.0结合在一起的版本,Flash CS4给ActionScript 3.0增添了更多新的功能,包括新的三维功能、新的动画控制和使用Adobe AIR的ActionScript类(参见第14课)。
ActionScript 3.0的新编程者
ActionScript提供了非常丰富的强大功能,但是要掌握这些功能需要深入学习。使用Flash的许多设计者和动画制作者通常会对学习ActionScript 3.0感到害怕,本书的大部分内容都是为有编程经验的人员所编写的。在刚开始学习的时候,需要一点耐心,当具有足够多的ActionScript知识时,就能够在Flash作品中添加更多交互式功能。
本书中的课程主要面向于有一点或者没有编程经验的设计者。了解一点有关ActionScript 1.0或2.0的知识当然是非常有用的,但是这不是完成这些课程所必需的。
完成这些课程之后,你将会熟悉ActionScript 3.0的语法。更重要的是,可以在现有的Flash中增添更多交互性工具。还可以使用Adobe Flash开发者中心(adobe.com/devnet/flash)和其他书籍或资源所提供的材料作为ActionScript教程基础。
ActionScript 1.0和2.0的用户
与ActionScript 1.0和2.0相对比,ActionScript 3.0有很多变化,即使是高级的ActionScript 1.0和ActionScript 2.0编程者也会对学习ActionScript 3.0感到有点困难。下面几个小节将介绍几个要点,使得你明白ActionScript所具有的优势值得你付出努力。
首先说坏消息
毫无疑问,ActionScript 3.0要比前几个版本更为复杂,这意味着,尤其是刚开始时,必须输入更多的代码才可以获得相同的结果。代价是,这样做速度会更快,但是初学者对于ActionScript还是觉得有点害怕。
此外,使用ActionScript 3.0所编写的Flash应用程序不能简单地与ActionScript早期版本的Flash文件集成在一起。这是因为在Flash Player 9及其更高版本中实际上有两个ActionScript播放器。
Flash Player包含ActionScript Virtual Machine1(AVM1),它可以播放使用ActionScript 1.0和ActionScript 2.0所创建的文件;Flash Player中还包含Virtual Machine 2(AVM2),它可以播放使用ActionScript 3.0所创建的文件。虽然在两个虚拟机之间可以进行文件通信,但是它们通信并不像相同版本AVM所创建的文件之间通信那么简单。在本书中,我们将重点讨论ActionScript 3.0,但是如果计划集成新的ActionScript 3.0项目到旧版本的Flash Web站点或应用中,应该首先深入学习Flash帮助中的资源,了解如何将ActionScript 3.0与旧版文件集成在一起。
接着是好消息
已经转换到ActionScript 3.0的ActionScript 1.0和ActionScript 2.0开发者,会非常感激该语言所提供的优势功能,尤其在以下几个方面。
- 更好的性能。正如前面所提到的,ActionScript 3.0代码执行速度要比前几个版本的语言快很多—通常是2~10倍,有时甚至会快100倍。这使得Flash可以创建高性能的游戏、仿真、三维界面和数据驱动的应用。
- 更合理的语法。因为ActionScript 2.0是建立在前一个版本的基础上,所以做同一个事情有很多方法。这会造成很大的困惑。例如,在ActionScript 1.0和ActionScript 2.0中,有些简单的事情,如响应一个事件或创建一个新对象,都会有很大的不同,这取决于事件或对象类型。在第2课中学习使用ActionScript 3.0时,会看到该语言将保持一致性。例如,在ActionScript 3.0中,不论是哪种类型的事件,侦听和响应事件都只有一种方法。
- 更好的错误检查和反馈。每个人都会犯错误,ActionScript 3.0提供了更好的反馈机制,以便用户可以识别和更正代码中的错误。
- 更多新特性。ActionScript 3.0引入了多个新类,提供了更多新的功能,包括使用声音、视频、XML、3D等。随着课程的学习,你将会了解和掌握这些新的特性。
- 更标准化的OOP环境。ActionScript 3.0是基于ECMA标准,与其他语言如Java、C#和C++有很多类似。ActionScript是真正面向对象的语言,更适合创建更大、更复杂的项目。本书重点不是讨论OOP,后面的课程将提供了一个平台,如果你有更复杂的项目,可以利用这个平台深入钻研ActionScript 3.0中OOP的开发。
播放Flash和ActionScript 3.0文件的格式
通常,在Flash中创建Web站点或应用程序意味着发布完成的工作文件——.SWF文件。该文件可以使用Flash Player来在浏览器中播放,这是Flash的最普通的应用。
Flash还提供了用于创建特定平台项目的选项。可以创建适合Macintosh或Windows平台的自运行的执行文件。
最近,Adobe引入了Adobe AIR技术,允许创建跨平台的桌面应用程序,可以运行在Macintosh、Windows或Linux平台上。Adobe AIR应用程序可以使用Flash CS4来创建;在第15课中,你将学习使用ActionScript 3.0来创建用来访问最终用户操作系统的桌面应用程序。
Flash和Flex
许多Flash用户听说过Adobe Flex,但是不能确定如何在开发过程中使用。Flash和Flex都是Adobe的商业软件。使用Flash和Flex都可以创建Flash Player可以播放的SWF文件,也可以创建单独的Adobe AIR应用。Flash和Flex都支持全部ActionScript 3.0语言,但是Flex更适合有编程开发背景的用户;Flash提供的一些工具和界面,更适合设计者和动画制作者使用。
本书主要介绍在Flash中如何使用ActionScript 3.0,但是所有这些概念和几乎所有代码也适用于Flex。
Flash时间轴中的ActionScript与外部的ActionScript文件
通常,Flash中的ActionScript都被放到时间轴的关键帧上。在Flash的早期版本中,ActionScript可以直接保存为一个对象,例如一个按钮或一个电影短片,但是在ActionScript中不允许这样。
不是将代码放到时间轴上,而是创建专用的ActionScript文件,它可用于任何Flash项目中。这是Flash中OOP的基础。
在本书的前几课中,可以将所有代码保存在Flash时间轴上。从第4课开始,将使用外部的ActionScript类文件,并开始学习利用OOP原则。
现在背景知识已经足够了……
让我们从第1课开始,学习使用ActionScript 3.0来导航Flash时间轴。