ActionScript 3.0类与ActionScript 2.0类的语法差别

其实,ActionScript 3.0类与ActionScript 2.0的语法差别不是很多,因此如果你是一个有经验的ActionScript 2程序员,基本上不用担心。下面说就我知道的差别做一个小结。

  1. AS3中引入了包的概念,主要是解决类名称冲突,这一点和Java类似。在AS3类中必须在包中声明。而AS2是用类的完全限定的名称来实现相同的功能,类不能用public修饰;
  2. AS3中可以使用命名空间,命名空间好比是自定义是类成员访问符,声明之后用using命名空间来访问,这一点和C#相似。
  3. AS3中使用private属性只对对同一类中的引用可见。而AS2中private属性允许子类访问超类中的私有属性。
  4. AS3中标记为private的属性在编译时和运行时都不可用,而在AS2中private关键字只在编译时禁止访问。
  5. AS3中protected属性是AS3中的新增属性,对同一类及子类中的引用可见,这一点类似于AS2的private 关键字。
  6. AS3中对类属性时可以直接赋值等同于构造函数中进行初始化,即使类属性是数组或对象也如此。AS2中如果属性是数组或对象,很可能将它们静态化。源文件下载
  7. AS3 中允许在同一类中定义同名的静态属性和实例属性,新增静态常量和const关键字。
  8. AS3类的方法作为参数传递给函数或值从函数返回时,this总是引用实现方法的实例。但AS2并不总是这样,因此很多时候不得不在函数外部声明地个变量引用this,甚至使用Delegate。源文件下载
  9. AS3中子类覆盖父类方法必须使用override关键字。

如果你还知道其它不同,请也与大家分享。

发表评论