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。

  能够利用 ActionScript 3 的产品

  有许多产品都生成以 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 版本会悄悄地掩盖错误,以避免在 Flash 中出现错误消息对话框。这在开发期间会造成困难,因为开发人员不了解可能出现的错误,就无法开发出好产品。

  在运行时存储类型细节,用来进行检查并保护系统,因此 ActionScript 3 是强类型的。这还有助于减少内存使用量,因为类型信息以本机机器表示法表示变量。

  ActionScript 3 完全符合 ECMAScript 第四版规范,这可以简化 XML 解析。

  ActionScript 3 的 Flash Player API 特性包括:

  DOM3 事件模型提供了生成和处理事件消息的标准方法,这有助于在对象之间进行更好的通信和交互。

  新的 Loader 类提供了装载 Shockwave Flash 和图像的单一机制,并提供访问关于被装载内容的详细信息的方法。URLLoader 类提供了在数据驱动应用程序中装载文本和二进制数据的单独机制。

  Socket 类提供了以任何格式对服务器套接字读写二进制数据的方法。

  ActionScript 3.0 包含一个 flash.text 包,它提供与文本相关的所有 API。

  下面是其他一些新功能。

  Loader.loadBytes()

  这个方法可以从二进制数据直接创建显示列表中的条目。例如,在我的电子邮件客户机上,如果从 Pop3 服务器上下载的一个电子邮件包含附件,就检查附件的 mime-type。如果这种类型是播放器支持的,那么就可以将附件的二进制源代码读入 ByteArray,并在 Flash Player 中显示这个附件。这意味着我的电子邮件客户机可以显示 PNG、JPEG、GIF 和 SWF 附件。

  Sound.computeSpectrum()

  这个方法分析播放的所有声音并返回一个 ByteArray,其中包含 512 个归一化的值(-1 到 1),可以使用它们显示声音波形(256 个值用于左声道,256 个值用于右声道)。可以使用这些值为 Media Players 创建 Audio Equalizers 以及对播放的声音做出反应的视觉效果。

  BitmapData.getPixels()

  这个方法返回一个 ByteArray,其中包含位图的指定矩形区域中每个像素的十六进制颜色值。可以将这个方法与新的 ZLib 压缩方法 ByteArray.compress() 结合使用,从而将位图压缩,然后再发送给服务器,这样就能够将它转换为一个适合下载的文件。

  Loader.close()

  现在,可以停止播放器装载外部媒体的过程。在过去,如果将一个图像装载进播放器,那么在完成处理之前无法停止。现在可以这么做了。

  ActionScript 3 的优点

  这个新版本具有以下优点:

  这种语言支持类型安全性,使代码维护更轻松。

  与其他语言相比,这种语言相当简单,很容易编写。

  开发人员可以编写具有高性能的响应性代码。

  这种语言向后兼容 ActionScript 2 并向前兼容 ECMAScript for XML(E4X)。

  Tamarin 简介

  在 2006 年 11 月 7 日,Adobe Systems 宣布将 ActionScript Virtual Machine 的代码捐献给 Mozilla Foundation。因此,Mozilla 启动了一个新的开放源码项目 Tamarin。Adobe 和 Mozilla 希望以此促进这种创建 Web 应用程序的标准化语言的推广。

  Tamarin 的目标

  Tamarin 项目的目标是实现一个高性能的开放源码的 ECMAScript 第四版(ES4)语言规范实现。Mozilla 在 SpiderMonkey 中使用 Tamarin Virtual Machine,SpiderMonkey 是 Firefox 和其他基于 Mozilla 的产品中嵌入的核心 JavaScript 引擎。Adobe 将继续在 A中国文秘网 个人工作总结 半年工作总结 年终工作总结 财务工作总结 教师工作总结 教学工作总结 德育工作总结 学校工作总结 安全工作总结 团委工作总结 党员工作总结 企业工作总结 班主任工作总结 党支部工作总结 晚会主持词 开业开幕 庆典致辞 新春致词 婚礼主持词 节日致辞 晚会致辞 追悼悼词 领导讲话 慰问贺电 年度工作计划 个人工作计划 学校工作计划 党支部工作计划 团委工作计划dobe Flash Player 中的 ActionScript Virtual Machine 中使用这些代码。

  Tamarin Virtual Machine 当前实现 ECMAScript 第三版语言标准(这是 JavaScript、Adobe ActionScript 和 Microsoft Jscript 采用的标准),还支持 ES4 中建议的一些新语言特性。社区正在开发 ES4 的开放源码实现,Adobe 和 Mozilla 希望以此促进这种创建 Web 应用程序的标准化语言的推广。Tamarin 项目的目标是帮助开发人员创建可以跨多个平台的效果丰富的高度交互性的用户体验。

  Tamarin 的发展计划

  Tamarin 将支持 ECMAScript 第四版(或者说 “JavaScript 2”)语言,并将集成进 Mozilla 2 项目中的 SpiderMonkey,预期在 2008 年发布。

  Mozilla 的开放源码项目团队刚刚开始开发 Tamarin,它的一些目标技术包括:

  将 Tamarin VM 和垃圾收集器集成进 SpiderMonkey 中

  使用 SpiderMonkey 编译器生成 Tamarin 的代码

  将即时编译器移植到新的硬件平台

  完成 ECMAScript 4 编译器

  使用 ActionScript 3 的简单示例

  这个 ActionScript 示例显示欢迎消息 “Hello <Username>”。用户可以在文本框中输入用户名。按回车时,就会显示欢迎消息。

  清单 1. 示例代码

  package {

  public class Greeter {

  /**

  * Defines the names that should receive a proper greeting.

  */

  public static var validNames:Array = ["Sammy", "Frank", "Dean"];

  /**

  * Builds a greeting string using the given name

  */

  public static function sayHello (userName:String = ""):String {

  var greeting:String = "Hello World";

  if (userName == ""){

  greeting = "Hello, please type your name and then press the enter key";

  }

  else if(validName(userName)){

  greeting = "Hello, " + userName + ".";

  }

  else {

  greeting = "Sorry, " + userName + "Your name is not present in the list.";

  }

  return greeting;

  }

  /**

  * Check whether a name is in the validNames list

  */

  public static function validName(inputName:String = ""):Boolean {

  if validNames.indexOf(inputName) > -1 {

  return true;

  }

  else {

  return false;

  }

  }

  }

  }

  图 1 显示清单 1 的初始窗口。它显示最初的欢迎消息 “Hello, please type your name and then press the enter key”,然后等待用户在标签为 User Name 的文本框中输入用户名。

  图 1. ActionScript 3 中的欢迎示例

  当用户在 User Name 框中输入 “Frank” 时,脚本会在预定义的 validNames 数组中寻找这个用户名。因为 “Frank” 在 validNames 数组中,所以在欢迎区域中会显示 “Hello Frank”,见图 2。

  图 2. 用户输入用户名

  如果用户输入的用户名不在 validNames 数组中,例如 “Anitha”,那么显示消息 “Sorry, Anitha, your name is not present in the list”。

  在下面,我提供了关于 ActionScript 编程的出色的参考资料。还可以找到一个论坛的链接,使用 ActionScript 的开发人员在这里直接回答任何问题。新的 ActionScript Virtual Machine 和 Flash Player 有许多令人兴奋的改进,但是这超出了本文的范围。如果您还没有下载最新的 Flash Player 版本,就请下载它,体会一下它的众多优点。

  参考资料

  学习

  您可以参阅本文在 developerWorks 全球网站上的 英文原文。

  如果希望参与 Tamarin 项目,那么访问 Mozilla Foundation 了解详情并订阅邮件列表。

  了解关于 ECMAScript Fourth Edition Specification 的详细信息。

  寻找 ActionScript 3.0 Language Reference 的所有包。

  获得产品和技术

  下载 Flash Player 9。

  下载 Flex 2 Builder 来进行 ActionScript 3.0 编程和 MXML 编程。

  讨论

  可以在 ActionScript 3 Forum 提出任何问题,您会很快得到答复。

  通过参与 developerWorks blog 加入 developerWorks 社区。

  关于作者

  Anitha Ramaswamy 是在 Bangalore 的 IBM 印度软件实验室的 WebSphere Business Integration Adapters 团队工作的软件工程师。她的专业领域包括 Java™ 和 Java 2 Enterprise Edition(J2EE™)技术。她从事 OS/2&reg; Presentation Manager 已经三年了。她还从事开放源码 Tuscany 项目和印度软件实验室的 EPCIS 团队的 RFIDIC 1.0 安装程序开发项目。她拥有 Bangalore 的 Vishwesvaraya Technological University 的电子和通信学士学位。可以通过 aramaswa@in.ibm.com 联系 Anitha。

Action Script3.0面向对象编程相关推荐

  1. 穿越梦想 起锚远航──金旭亮新作《.NET 4.0面向对象编程漫谈》

    注: 本人之新作--<.NET 4.0面向对象编程漫谈>之<基础篇>已经完成了出版前的各项准备工作,估计11月份可以上市,<应用篇>可能会晚一点推出. 本书< ...

  2. 新作《.NET 4.0面向对象编程漫谈》之序“穿越梦想、起锚远航”

    序 穿越梦想 起锚远航 注: 本人之新作--<.NET 4.0面向对象编程漫谈>之<基础篇>已经完成了出版前的各项准备工作,估计11月份可以上市,<应用篇>可能会晚 ...

  3. 《.NET 4.0面向对象编程漫谈》前言及配套资源包发布

    <.NET 4.0面向对象编程漫谈>前言及配套资源包发布 注: 今天拿到了出版社快递送来的<.NET 4.0面向对象编程漫谈>(基础篇和应用篇)的24小时样书,相信读者很快就能 ...

  4. 《.NET 4.0面向对象编程漫谈》前言

    前 言 笔者本科的专业是电力系统及自动化,本与软件关系不大,但由于机缘偶合,从1994年开始自学计算机专业课程,由此迈入引人入胜的软件技术世界,迄今已经16年了,而这16年中有一半的时间花在了研究.N ...

  5. action script3.0殿堂之路_【日本乐坛传奇】松任谷由实是谁?新音乐女王的登基之路!...

    松任谷由实是谁? 日本人引以为傲的queen of pops? 没错,但她,却不仅只是这样. 她是日本音乐界的女王,日本流行音乐界始祖级别的人物,日本新音乐活着的精神象征,日本流行界天花板级别的歌手. ...

  6. 从零开始学习python编程-从0开始的Python学习014面向对象编程(推荐)

    简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象编 ...

  7. 使用java实现面向对象编程第十章嗖嗖移动业务大厅项目_ACCP6.0使用Java实现面向对象编程-第一章.ppt...

    ACCP6.0使用Java实现面向对象编程-第一章 练习--用类图设计Dog和Penguin类 需求说明: 运用面向对象思想抽象出Dog类和Penguin类,画出对应类图 根据类图编写Dog类和Pen ...

  8. 我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的继承...

    当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对SOA,对面向服务产生误解.其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替. ...

  9. 问题小结(二)——maven的核心功能、面向对象编程和面向接口编程的区别、抽象类和接口的区别等

    文章目录 1. Java创建对象有哪四种方式? 2. 什么是maven?maven的核心功能有哪些? 3. 什么是MVC?说说分层的好处. 4. Spring的两大核心技术是什么? 5. 什么是IOC ...

最新文章

  1. Open-Falcon 监控系统监控 MySQL/Redis/MongoDB 状态监控
  2. Python--详解Python中re.sub
  3. 面试技巧,如何通过索引说数据库优化能力
  4. linux mysql5.6数据目录,Linux下Mysql5.6 二进制安装过程
  5. IOS github客户端操作流程 超详细
  6. java无经验_应届生没有项目经验怎么面试?(java篇)
  7. 高效能人士的七个习惯
  8. P1938 [USACO09NOV]Job Hunt S(spfa,队列+邻接表优化)
  9. idea 重启之后 IntelliJ IDEA 一直在indexing
  10. android 7双排设置菜单,双排状态栏布局教程
  11. 部分选主元matlab,列选主元的高斯消去法-matlab
  12. 【转】微信订阅号的运营
  13. HDU 6047 Maximum Sequence 思维
  14. MIS软件工程师的面试问题与方法
  15. html之菜单栏设置
  16. 删除设备和驱动器中的迅雷下载、百度网盘的图标(win10、win11可用)
  17. Latex排版—(2)基本结构
  18. dddd带带弟弟OCR识别验证码
  19. 今天北京的天空是湛蓝的
  20. html字体设置大小打印无效,css font-size属性怎么不管用?

热门文章

  1. 想练一手好字 从模仿开始
  2. JButton大改造之二 - 五芒星之辉
  3. php 二维排序函数,PHP二维数组排序函数
  4. 近完美解除京东Jeb电子书下载和阅读限制(转载)
  5. python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)
  6. 罗氏医疗器械曝多个漏洞,可能会危及患者人身安全
  7. 想自学python,如果做不到这几条,建议选择继续躺平刷抖音.....
  8. StrictMode使用详解
  9. HandyControl PropertyGrid 属性
  10. 几行样式代码,让你的网站全站和图片都变成灰色|CSS样式灰色代码