ActionScipt技巧和开发中会遇到的问题

2019-10-08 18:56:18刘景俊
英文原文:《Tips for learning ActionScript 3.0》
原文地址:http://www.adobe.com/devnet/actionscript/articles/actionscript_tips.html
译者:Dreamer。

学习ActionScipt的一些提示
ActionScript 3.0是一种强大的面向对象语言,它为Flash Player描绘了一种新的编程模型。如果你已经对ActionScript 1.0或2.0很熟悉,那么当你使用ActionScript 3.0开发你的第一个应用程序的时候需要知道一些语言差别。
注:更多资料,请参考Flex 2.0 Language Reference中ActionScript 2.0 和ActionScript 3.0之间的不同点的列表。
为了帮助大家更容易地过渡到ActionScript 3.0,我编辑了下面的列表,其中包括技巧和你可能在开发中会遇到的普遍的问题。

•为所有变量,参数和返回值声明类型。为所有变量,参数和返回值声明类型不是必须的,但是它被认为是最好的习惯。它将会帮助编译器给你更多地有用的错误信息。它还会增强运行时的性能,因为虚拟机将会认为你事先知道你所做的工作。实际上,它是如此重要所以如果你没有声明我们会给出一个警告。
•注意现在没有访问方式的声明都默认是internal方式,而不是public。现在默认的访问方式是internal而不是public,这就是说这个声明只对含有这个声明的包可见,而不是对所有代码都可见。这一点和其它一些语言相一致,比如JAVA。因为ActionScript2.0的声明默认为是public,这个变化将很可能造成普遍的错误,所以请总是在声明前面加上访问方式,让你的意图更加清楚。为了鼓励这个好习惯,ActionScript 3.0编译器将在没有访问方式声明的时候给出一个警告。
•注意类都是默认为封装(sealed)的,也就是说不能在运行时动态地添加属性。现在类可以是动态的(dynamic)或者封装的(sealed)。动态(dynamic)类可以在运行时添加动态属性;封装(sealed)类不行。因为不需要内部哈希表来保存动态的属性,封装(sealed)类占用内存少,而且编译器可以对它提供更好的错误反馈。Class Foo这种声明就是封装(sealed)的。要声明一个动态(dynamic)类,就使用dynamic关键字——比如,dynamic class Foo。
•使用包(package)声明把一个类放到一个包(package)里面。Package是ActionScript 3.0中一个新的关键字。
ActionScript 2.0 代码:

class mx.controls.Button { … }
ActionScript 3.0 代码:

package mx.controls { class Button { .. } }
在ActionScript 2.0中,一个public类必须放在一个文件名和类名相同的文件中。多个类可能在同一个文件中声明,但是只有一个类可能是public,并且这个类的名字必须和文件名字相同。
•导入类,即使对这个类的引用都是完全合法的。要使用MyPackage.MyClass类,你必须导入它: