ActionScript 3.0 闪亮登场!用下一代 Flash Player Runtime 和 Mozilla 的 Tamarin 开放源码项目编写 Adobe 电影和应用程序 |
级别: 中级 Anitha Ramaswamy (aramaswa@in.ibm.com), 系统软件工程师, IBM India 2007 年 4 月 24 日 ActionScript 3.0 是一种强大的面向对象编程语言,它标志着 Flash Player Runtime 演化过程中的一个重要阶段。设计 ActionScript 3.0 的意图是创建一种适合快速地构建效果丰富的互联网应用程序的语言,这种应用程序已经成为 Web 体验的重要部分。 ActionScript 是一种基于 ECMAScript 的编程语言,用来编写 Adobe Flash 电影和应用程序。ActionScript 1.0 最初随 Flash 5 一起发布,这是第一个完全可编程的版本。Flash 6 增加了几个内置函数,答应通过程序更好地控制动画元素。在 Flash 7 中引入了 ActionScript 2.0,这是一种强类型的语言,支持基于类的编程特性,比如继续、接口和严格的数据类型。Flash 8 进一步扩展了 ActionScript 2,添加了新的类库以及用于在运行时控制位图数据和文件上传的 API。Flash Player 中内置的 ActionScript Virtual Machine(AVM1)执行 ActionScript。通过使用新的虚拟机 ActionScript Virtual Machine(AVM2),Flash 9(附带 ActionScript 3)大大提高了性能。 ActionScript 的老版本(ActionScript 1.0 和 2.0)提供了创建效果丰富的 Web 应用程序所需的功能和灵活性。ActionScript 3 现在为基于 Web 的应用程序提供了更多的可能性。它进一步增强了这种语言,提供了出色的性能,简化了开发的过程,因此更适合高度复杂的 Web 应用程序和大数据集。ActionScript 3 可以为以 Flash Player 为目标的内容和应用程序提供高性能和开发效率。 ActionScript 3 符合 ECMAScript Language Specification 第三版。它还包含基于 ECMAScript Edition 4 的功能,比如类、包和名称空间;可选的静态类型;生成器和迭代器;以及非结构化赋值(destructuring assignments)。随着 Web 应用程序项目需求的增长,也要求 ActionScript 引擎有重大的突破。ActionScript 3 引入了一个新的高度优化的 ActionScript Virtual Machine(AVM2),与 AVM1 相比,AVM2 的性能有了显著的提高。这使 ActionScript 3 代码的执行速度几乎比以前的 ActionScript 代码快了 10 倍。Flash Player 9 中包含 AVM2(ActionScript 3.0 的脚本语言引擎),设计它的目的是提供互联网应用程序开发人员所需的性能和特性。为了向后兼容现有的内容,Flash Player 将继续支持 AVM1。 有许多产品都生成以 Flash Player Runtime 为目标的内容和应用程序,包括 YouTube、Flickr、SWiSH 和 ScreenTime。这些产品能够利用 ActionScript 在自己的输出中添加交互和行为。在 Adobe 产品系列中,专业设计人员可以在几种工具和服务器中使用 ActionScript,比如 Flash、Flex 和 Flash Media Server,从而为 Flash Player Runtime 创建内容和应用程序。Flex 产品系列(包括基于 Eclipse 的新的 Flex Builder 2 IDE)是第一个能够使用 ActionScript 3.0 的新功能的产品系列。 从 ActionScript 3 的一般特性开始,我将讨论一下目标、语言特性和 Flash Player API 特性。还要讨论 ActionScript 3 中的新特性和不太为人所知的特性。在 2006 年 11 月 7 日,在旧金山召开的 WEB 2.0 会议上,Adobe Systems 公布将 ActionScript Virtual Machine 的源代码捐献给 Mozilla Foundation。Mozilla 启动了一个新的开放源码项目 Tamarin,其目的是促进这种创建 Web 应用程序的标准化方法的开发。 ActionScript 3 有两类特性:语言特性和 Flash Player API 特性。语言特性基本上是在 ActionScript 2 之上构建的,但是还有一些性能和功能方面的改进,包括:
ActionScript 3 的 Flash Player API 特性包括:
下面是其他一些新功能。 这个方法可以从二进制数据直接创建显示列表中的条目。例如,在我的电子邮件客户机上,假如从 Pop3 服务器上下载的一个电子邮件包含附件,就检查附件的 mime-type。假如这种类型是播放器支持的,那么就可以将附件的二进制源代码读入 ByteArray,并在 Flash Player 中显示这个附件。这意味着我的电子邮件客户机可以显示 PNG、JPEG、GIF 和 SWF 附件。 这个方法分析播放的所有声音并返回一个 ByteArray,其中包含 512 个归一化的值(-1 到 1),可以使用它们显示声音波形(256 个值用于左声道,256 个值用于右声道)。可以使用这些值为 Media Players 创建 Audio Equalizers 以及对播放的声音做出反应的视觉效果。 这个方法返回一个 ByteArray,其中包含位图的指定矩形区域中每个像素的十六进制颜色值。可以将这个方法与新的 ZLib 压缩方法 现在,可以停止播放器装载外部媒体的过程。在过去,假如将一个图像装载进播放器,那么在完成处理之前无法停止。现在可以这么做了。 这个新版本具有以下优点:
在 2006 年 11 月 7 日,Adobe Systems 公布将 ActionScript Virtual Machine 的代码捐献给 Mozilla Foundation。因此,Mozilla 启动了一个新的开放源码项目 Tamarin。Adobe 和 Mozilla 希望以此促进这种创建 Web 应用程序的标准化语言的推广。 Tamarin 项目的目标是实现一个高性能的开放源码的 ECMAScript 第四版(ES4)语言规范实现。Mozilla 在 SpiderMonkey 中使用 Tamarin Virtual Machine,SpiderMonkey 是 Firefox 和其他基于 Mozilla 的产品中嵌入的核心 JavaScript 引擎。Adobe 将继续在 Adobe Flash Player 中的 ActionScript Virtual Machine 中使用这些代码。 Tamarin Virtual Machine 当前实现 ECMAScript 第三版语言标准(这是 JavaScript、Adobe ActionScript 和 Microsoft Jscript 采用的标准),还支持 ES4 中建议的一些新语言特性。社区正在开发 ES4 的开放源码实现,Adobe 和 Mozilla 希望以此促进这种创建 Web 应用程序的标准化语言的推广。Tamarin 项目的目标是帮助开发人员创建可以跨多个平台的效果丰富的高度交互性的用户体验。 Tamarin 将支持 ECMAScript 第四版(或者说 “JavaScript 2”)语言,并将集成进 Mozilla 2 项目中的 SpiderMonkey,预期在 2008 年发布。 Mozilla 的开放源码项目团队刚刚开始开发 Tamarin,它的一些目标技术包括:
这个 ActionScript 示例显示欢迎消息 “Hello <Username>”。用户可以在文本框中输入用户名。按回车时,就会显示欢迎消息。 清单 1. 示例代码
图 1 显示清单 1 的初始窗口。它显示最初的欢迎消息 “Hello, please type your name and then press the enter key”,然后等待用户在标签为 User Name 的文本框中输入用户名。 图 1. ActionScript 3 中的欢迎示例 当用户在 User Name 框中输入 “Frank” 时,脚本会在预定义的 图 2. 用户输入用户名 假如用户输入的用户名不在 在下面,我提供了关于 ActionScript 编程的出色的参考资料。还可以找到一个论坛的链接,使用 ActionScript 的开发人员在这里直接回答任何问题。新的 ActionScript Virtual Machine 和 Flash Player 有许多令人兴奋的改进,但是这超出了本文的范围。假如您还没有下载最新的 Flash Player 版本,就请下载它,体会一下它的众多优点。 学习
获得产品和技术
讨论
|
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |