`
longgangbai
  • 浏览: 7338989 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

学习ActionScript 3.0的新特点

阅读更多

ActionScript3.0 是一种类型安全,适应标准,面向对象的语言,代表着flash 播放器中的新的程序模型。 如果你已经熟悉ActionScript 1.0或者2.0, 所以当你用       ActionScript3.0开发应用程序时应该注意到它的一些不同点.

      为了帮助你轻松过渡到ActionScript3.0,我们开始列出一些信息以及一些在开发过程中你有可能遇到的问题。另一个有关ActionScript 2.0与ActionScript 3.0的API比较的有用资源在《ActionScript 3.0 语言参考》内可以查询到。

1、必须为所有的变量,参数和返回值定义数据类型。
      为所有的变量,参数和返回值定义数据类型被认为是一个极好的习惯, 并且能够帮助编译器给你更有帮助的错误提示。因为在运行前虚拟机就已经知道了它(变量,参数和返回值)的数据类型所以它(定义数据类型)也能够使得在运行时表现的更好。 实际上,因为我们认为这很重要所以在默认情况下我们会给出一个警告!(指未定义数据类型)

2、如果没有声明路径,它将默认为一个内在的,而不是公开的。
      声明的默认路径将由私有的起而代之(公开),意味着那些定义可见在只包含那些定义的那些包,而不是所有的代码。 这与诸如Java的其它一些些语言是相同的。因为ActionScript2.0的声明默认为公开, 这可能成为一个明显的漏洞,因此我们建议你为你的声明建立一个路径以至于它是透明的(意思就是说某些企图是徒劳的).为了鼓励这种好习惯,当没有声明路径时,ActionScript3.0编译器将弹出一个警告!

3、类被默认为是密封的,意味着扩展的特性将不能够在运行当中加入。
      类现在可以是动态的或者密封的。 动态的类能在运行当中增加另外的动态的特性;密封的类则不能。密封类保存在存储器当中因为不需要其它的杂乱信号,并且编译器能提供更好的错误反馈。  如声明class Foo,它是密封的。如果声明一个动态的类,请使用dynamic关键字, 例如dynamic class Foo。

4、如果需要引用一个包中的类,现在它是包含在包当中来引用。
      包的关键字对ActionScript 3.0来说是一种新的方式。 ActionScript 2.0 代码为: class mx.controls.Button {... }。ActionScript 3.0 代码:package mx.controls {class Button {. .. }}
      如同ActionScript 2.0,一个公开类的文件名与类的名字是相同的。若干个类可能放在同一个独立的文件夹中,但是只有一个类是公开的,并且它的名字必须与文件名相匹配

5、类必须导入,即使是那些提及到类
      使用MyPackage.MyClass类,你必须导入MyPackage.*; 或者导入MyPackage.MyClass;这是必须的即使是那些提及到的类,列如使用全名MyPackage.MyClass。 在ActionScript 3.0中,被导入的文件表明你想使用来自于另一个包的类,而在ActionScript 2.0中它只是一个简写。 在ActionScript 3.0中,完整的类名称用于消除模棱两可的情况,而且不会是导入文件方式的替代方式。

6、覆盖方法必须标记为override
      Override关键字使得避免了覆盖方法中的一个明显缺陷, 譬如为一个覆盖方法指定了错误名字或方法署名, 或者当这个覆盖方法的名字改变时。并且它可以通过查询代码清楚的看到一个方法已经被覆盖。因为它可以清楚的知道一个方法是否覆盖了另一个方法, 对于编译器编译能够得到有效的确认。Override关键字是受到了C#中的override关键字的启发。

7、外加的(属性)应该作为强制性数据项目,而不是对象的属性。
      对象匮乏的安全类型将可能导致意想不到的错误,所以编译器也将给出一个警告。绑定某对象的属性,比如selectedItem.name, 将导致一次警告; 你需要使用强制性数据项目,比如,EmployeeInfo(selectedItem).name 。

8、函数必须定义返回值。
      这样做是为了安全的数据类型,  所以你不能落下定义任一个返回值的数据类型或者为一个对象取得默认的类型。如果一个函数没有返回任何值,声明它返回一个空值。

9、代理方式将在建立,使得事件派遣变得更容易
      在ActionScript 2.0, 寻址事件对方法要求使用mx.utils.Delegate类或者其它的
          import mx.utils.Delegate;
          myButton.addEventListener(“click”, Delegate.create(this, onClick));

          在ActionScript 3.0, 提及到的方法将自动的记住它所涉及到的对象实例。 实质上,这是一种自动的代理。 所以,代码可能简单地被写成:
         myButton.addEventListener(“click”, onClick);

10、间接引用空值或未定义值的忽略将不会被忽略。
        间接引用空值或未定义值在以前的ActionScript 中会被忽略了和或者告知未定义。 现在, TypeError 的忽略将不会被忽略。 应该注意代码中存在空值或未定义值, 以及无声息中导致的失败。新的不忽略机制适应了ECMAScript 规格。

11、编译将于命令行的堆栈形式进行并且调试过程中将出现文件名以及行的进度
         当一个运行错误发生, 对话框将描述出这个错误并且显示出哪里出的这个错误。 使用详细的说明以及调试工具的选择将能够使你更加简单的定位到出现错误的地方。

12、属性不再是默认的被绑定。(Properties are no longer bindable by default.)
        如果属性需要绑定你必须用[Bindable]元数据标记。(You must declare them to be bindable by using the [Bindable] metadata tag.)

13、Flash Player API 被改组在一个包中
        以前, Flasy PlayerAPI中的所有类和函数是全局的, 现在,它们被放在了包当中,比如flash.display,flash.events,flash.ui。 例如, MovieClip 放在了flash.display.MovieClip, trace(),getTimer() 和setInterval()被放进了flash.util包当中。

14、新的时间类为时间事件提供了一个比setInterval/setTimeout函数更加纯正的机制
         新的时间类比setInterval体现出了更多的优点, 比如不需要一个时间间隔,并且更加先进, 面向对象的界面。我们认为用时间类替代setInterval/setTimeout是一个良好的习惯。

15、Event已经作为一种强制, 而且必须是一个新的事件类的子类。
         这意味着你能不再使用类对象的一个普通事例来派遣一个事件, 并且你不可能使用对象简写制方式, 即 { type:”customEvent” } 。不是创建一个普通对象, 现在你需要使用Event class。
        如果你想获得其它的属性你需要通过建立子类事件。 这样的做法是为了使得数据类型能够更安全和更有效。

16、视觉原理扩展了DisplayObject,你可以象定义其他类一样定义它们. 显示列表开始用addChild()来动态地增加组成部分。
         结果, createChild() 已经不被提倡使用。虚拟的实体, 包括TextField, 能够象其他对象一样来展示并且用addChild() 或者addChildAt方便地加入到显示列表中 。注意这还涉及到其它一些APIs, 譬如createEmptyMovieClip()  和 createTextField()已经成为过去式。 为了创造新的TextField你可以用”new TextField()”来代替”create TextField()”。

17、E4X (ECMAScript 为XML) 被推荐在flash中用来处理XML。
         ActionScript中的E4X变的更加强大和完整,提供给了计算机一种新的能力。以前的flash XML类依然可以用来使用。 如果你更喜欢以前的XML API, 改称为XMLDocument, 它被放在flash.xml包中。

18、当使用E4X时, toString方法已经不能用来标记整个对象返回全部的XML; 如果需要获得它,应该使用toXMLString method.
toString方法可以用于返回XML对象中某段字符。 它已经不能用于记录整个的XML对象。 如果需要获得标记的XML,使用toXMLString方法。

19、For…in 的循环语句已经不能够用来列举一个类中的属性和方法;它只能够用来列举一个对象中动态的属性。
        ActionScript 3.0以一种新的和比较先进的机制描述内在的属性和方法, 叫做describeType 。在ActonScript 3.0中是用describeType描述内在的属性和方法。

20、你能够用你所定义的一个类的实例来作为一个SWF对象。
         在ActionScript 2.0中, SWF对象总是MovieClip类 。在ActionScript3.0, 它可能会是Sprite类的子类。 你可以为DocumentRoot中的SWF文件定义一个类 。当SWF已经下载完成时,它将代替这个类作为最终对象。

分享到:
评论

相关推荐

    flash ActionScript 3.0 PPT课件

    **1.3 学习ActionScript 3.0的建议** 学习ActionScript 3.0需要时间和耐心。以下是一些学习策略: - **利用帮助文档**:使用Flash CS3中的内置帮助文档(F1键)或在线资源,及时获取语法和API信息。 - **实践编程*...

    《ActionScript3.0完全自学手册》电子教案

    【ActionScript 3.0完全自学手册】电子教案详述了ActionScript 3.0这一编程语言的基础知识,包括它的历史、特点、新特性以及在Adobe Flash CS3中的应用。ActionScript 3.0是在Adobe Flash CS3和Flex 2.0发布时同步...

    actionscript3.0

    #### 二、ActionScript 3.0的特点 1. **高效的执行效率**:相比前一代ActionScript 2.0,ActionScript 3.0通过优化编译器和虚拟机实现了更快的执行速度,这对于开发高性能的Flash应用尤为重要。 2. **面向对象编程...

    Foundation ActionScript 3.0 with Flash CS3 and Flex.pdf

    相比于之前的版本,ActionScript 3.0在性能上有了显著提升,并引入了许多新的特性和改进。 #### 三、Flash CS3 Adobe Flash CS3是一款用于创建交互式内容、动画和多媒体作品的强大软件。它提供了丰富的工具集来设计...

    ActionScript3.0完全自学手册电子教案.pdf

    通过学习ActionScript3.0的核心语言和Flash Player API,开发者可以轻松创建出既美观又功能丰富的应用程序。此外,Flash CS3的动作面板和脚本窗口为编写ActionScript代码提供了直观且高效的环境,极大地简化了开发...

    ActionScript3.0的资料

    ActionScript 3.0的类体系与Java和C#等其他面向对象语言类似,但具有自己的特点,例如单一继承和接口支持。 函数和事件处理是ActionScript 3.0中的重要部分。函数可以作为独立的代码块执行,而事件处理则允许程序...

    ActionScript 3.0 API文档及Flex开发详解电子书

    《ActionScript 3.0 语言和组件参考.chm 《Flex 3 RIA开发详解与精深实践》PDF及 配套代码 (1)《ActionScript 3.0 语言和组件参考》概述 《ActionScript 3.0 语言参考》是 Flash® Player 和 Adobe AIR™ 应用...

    2013 Adobe ActionScript 3.0 开发人员指南

    Adobe ActionScript 3.0开发人员指南提供了一个全面的参考,涵盖了从基础到高级的ActionScript 3.0编程知识,是开发人员学习和掌握该语言不可或缺的资源。通过对指南的学习,开发者可以有效地利用ActionScript 3.0的...

    actionscript3.0入门编程

    #### 关于学习ActionScript 3.0的知识点 ##### 一、ActionScript 3.0简介 ActionScript 3.0(简称AS3)是Adobe公司推出的一种面向对象的脚本语言,主要用于开发基于Flash平台的应用程序、游戏、交互式多媒体等内容...

    Flash ActionScript 3.0动画教程中文版高清晰.pdf

    这份资料由FL基理大师精心翻译和编辑,其内容深入浅出,是学习ActionScript动画的理想选择。 ### 重要知识点概览 #### 1. 基础动画概念 - **动画定义**:动画是一种视觉效果,通过连续播放一系列图像来模拟运动。 ...

    ActionScript3.0程序设计

    - **主要特点**:相比之前的版本,ActionScript 3.0 提供了更为强大的性能、更丰富的语言特性以及更好的组织代码的能力。 - **应用领域**:广泛应用于在线游戏、教育软件、多媒体展示等多个领域。 ##### ...

    actionscript 3.0从入门到精通

    《ActionScript 3.0 从入门到精通》是一本专为学习ActionScript 3.0编程语言的读者编写的指南。ActionScript是Adobe开发的一种脚本语言,主要用于创建交互式内容,尤其是在Flash Player和Adobe Flex中。ActionScript...

    ActionScript 3.0 for Adobe Flash Professional CS5 Classroom in a Book

    - **语法结构**:了解ActionScript 3.0的语法特点,例如语句结束符、注释等。 - **变量与数据类型**:掌握各种内置数据类型(如Number、String、Boolean)的使用方法。 - **控制结构**:学习条件判断(if...else)、...

    ActionScript 3.0 教程txt版

    #### 一、ActionScript 3.0简介与特点 - **ActionScript 3.0**:是Adobe Flash平台的一种强大的面向对象编程语言,用于开发交互式应用程序和多媒体内容。 - **适用场景**:广泛应用于Flash和Flex技术的开发,特别...

    C语言典型应用系统之——聊天室(ActionScript 3.0实现)

    用户输入的消息可以通过ActionScript发送到服务器,同时,服务器接收到的新消息也能实时推送到客户端。 在实现过程中,`library.swf`可能是一个包含了聊天室界面元素的库文件,它包含了各种组件、动画效果和用户...

    (中文经典1)foundation Actionscript3.0 Animation

    ActionScript 3.0是Adobe Flash Professional中的主要编程语言,它具有性能提升、类型检查严格和面向对象等显著特点,使得开发更加高效且专业的Flash应用成为可能。 在ActionScript 3.0中,动画的实现基于时间线和...

    本地播放器(ActionScript 3.0实现)

    通过学习这个本地播放器的ActionScript 3.0实现,开发者可以深入了解如何利用AS3.0进行多媒体交互设计,掌握基本的播放器开发技巧,这对于构建其他类型的Flash应用程序也非常有帮助。同时,这个项目也是一个很好的...

    Flash ActionScript 3.0 动画高级教程 源码

    首先,我们要了解ActionScript 3.0的主要特点。相比于ActionScript 2.0,AS3.0进行了重大更新,包括类和对象的面向对象编程、更严格的语法、更高的性能以及更好的类型检查。这些改进使得AS3.0更适合开发复杂的互动...

Global site tag (gtag.js) - Google Analytics