若要创建类,首先必须创建一个外部动作脚本 (AS) 文件。类(和接口)只能在外部脚本文件中定义。例如,您不能在附加到 Flash 文档 (FLA) 中的帧或按钮的脚本中定义类。若要创建一个外部 AS 文件,请使用 Flash 附带的动作脚本编辑器,或您常用的代码或文本编辑器。
注意:发布、导出、测试或调试 FLA 文件时,外部文件中的动作脚本代码将被编译成 SWF 文件。因此,如果对外部文件进行了任何更改,则必须保存该文件,并重新编译使用它的任何 FLA 文件。
在下面的步骤中,您将创建一个名为 Person 的类。这个类包含两个属性(age
和 name
)和一个方法 (showInfo()
),调用该方法将在“输出”面板中显示这两个属性的值。
class Person { }
这称作类声明。最基本的类声明应包括:一个 class
关键字,后面跟有类名(本例中为 Person),然后跟有一对大括号 ({}
)。大括号内的所有内容都称作类体,类的属性和方法都在其中定义。
注意:类的名称 (Person) 应与包含该类的 AS 文件 (Person.as) 相匹配。这非常重要;如果这两个名称不匹配,将无法编译类。
var
关键字定义两个名称分别为 age
和 name
的变量,如下所示。
class Person {var age:Number;
var name:String;
}
提示:按照约定,应在类体的最前面定义类属性(这可以使代码更易让人理解),但不是非要这样做。
请注意变量声明中使用的冒语法号(var age:Number
和 var name:String
)。这就是严格数据类型指定的一个示例。按这种方式键入变量时 (var
variableName
:
variableType
),动作脚本 2.0 编译器将确保赋给该变量的任何值都与指定的类型匹配。虽然不是非要按照此语法定义变量,但这是一个好习惯,并且可以使脚本调试更容易。(有关更多信息,请参见严格数据类型指定。)
showInfo()
方法。该方法返回一个预先设置好格式的字符串,其中包含 age
和 name
属性的值。在类体中添加 showInfo()
函数定义,如下所示。
class Person {
var age:Number;
var name:String;
// 用于返回属性值的方法
function showInfo():String {
return("Hello, my name is " + name + " and I'm " + age + " years old.");
}
}
请注意函数定义中数据类型指定的使用(可选,但建议使用)。
function showInfo():String {...}
在本例中,我们指定了 showInfo()
函数的返回值的数据类型(字符串)。
构造函数的名称必须类的名称相同。若要创建该类的构造函数,请添加以下代码:
class Person {
var age:Number;
var name:String;
// 用于返回属性值的方法
function showInfo():String {
return("Hello, my name is " + name + " and I’m " + age + " years old.");
}
// 构造函数
function Person (myName:String, myAge:Number) {
name = myName;
age = myAge;
}
}
Person()
构造函数有两个参数 myName
和 myAge
,并将这两个参数的值赋给 name
和 age
属性。这两个参数的数据类型分别被严格指定为 String 和 Number。有关构造函数的更多信息,请参见构造函数。
注意:如果不创建构造函数,编译过程中将自动创建一个空构造函数。
如果您正在使用 Flash MX 2004(而不是 Flash Professional),请参见创建 Person 类的实例。
如果“输出”面板中报告有错误,请对您脚本中的代码与上面第 7 步中的最终代码进行比较。如果您无法修复代码中的错误,请复制第 7 步中的完整代码。