编写类的代码
一旦制订了类的设计计划,或至少对该类需要跟踪哪些信息以及该类需要执行哪些动作有了一定了解后,编写类的实际语法就变得非常简单了。
下面是创建自己的 ActionScript 类的最基本步骤:
- 在特定于 ActionScript 的程序(如 Flex Builder 或 Flash)、通用编程工具(如 Dreamweaver)或者可用来处理纯文本文档的任何程序中打开一个新的文本文档。
- 输入
class
语句定义类的名称。为此,输入单词public class
,然后输入类名,后跟一个左大括号和一个右大括号,两个括号之间将是类的内容(方法和属性定义)。例如:public class MyClass { }
单词
public
表示可以从任何其它代码中访问该类。有关其它替代方法,请参阅"访问控制命名空间属性"。 - 键入 package 语句以指示包含该类的包的名称。语法是单词
package
,后跟完整的包名称,再跟左大括号和右大括号(括号之间将是class
语句块)。例如,我们将上一步中的代码改为:package mypackage { public class MyClass { } }
- 使用
var
语句,在类体内定义该类中的每个属性;语法与用于声明任何变量的语法相同(并增加了public
修饰符)。例如,在类定义的左大括号与右大括号之间添加下列行将创建名为textVariable
、numericVariable
和dateVariable
属性:public var textVariable:String = "some default value"; public var numericVariable:Number = 17; public var dateVariable:Date;
- 使用与函数定义所用的相同语法来定义类中的每个方法。例如:
- 要创建
myMethod()
方法,应输入:public function myMethod(param1:String, param2:Number):void { // 使用参数执行某个操作 }
- 要创建一个构造函数(在创建类实例的过程中调用的特殊方法),应创建一个名称与类名称完全匹配的方法:
public function MyClass() { // 为属性设置初始值 // 否则创建该对象 textVariable = "Hello there!"; dateVariable = new Date(2001, 5, 11); }
如果没有在类中包括构造函数方法,编译器将自动在类中创建一个空构造函数(没有参数和语句)。
- 要创建
您还可以定义其它几个类元素。这些元素更为复杂。
- "存取器"是方法与属性之间的一个特殊交点。在编写代码来定义类时,可以像编写方法一样来编写存取器,这样就可以执行多个动作(而不是像在定义属性时那样,只能读取值或赋值)。但是,在创建类的实例时,可将存取器视为属性 ― 仅使用名称来读取值或赋值。有关详细信息,请参阅"get 和 set 存取器方法"。
- ActionScript 中的事件不是使用特定的语法来定义的。应使用 EventDispatcher 类的功能来定义类中的事件,以便跟踪事件侦听器并将事件通知给它们。有关在您自己的类中创建事件的详细信息,请参阅"处理事件"。
有关组织类的一些建议
与早期的 ActionScript 版本不同,ActionScript 3.0 没有一个文件对应一个类的限制,即不限制每个文件只能使用一个类。使用 ActionScript 3.0,您可以将多个类的源代码保存到单个 .as 文件中。在某些情况下,将多个类包装到单个源文件中可能看似比较方便,但通常而言,这被认为是不好的编程习惯,原因有二:
- 如果将多个类包装到一个大文件中,则重用每个类将非常困难。
- 当文件名与类名不对应时,找到特定类的源代码将非常困难。
由于以上原因,Adobe 建议您始终将每个类的源代码保存在其自己的文件中,并为文件指定与类相同的名称。
示例:创建基本应用程序
本节将引导您完成使用 Flash 创作工具或 Flex Builder 2 工具创建和增强一个简单的 ActionScript 3.0 应用程序的步骤。您构建的应用程序将呈现出一种在 Flash 和 Flex 应用程序中使用外部 ActionScript 3.0 类文件的简单模式。在本手册中该模式将会应用于其它所有应用程序范例。