创建类文件

若要创建类,首先必须创建一个外部动作脚本 (AS) 文件。类(和接口)只能在外部脚本文件中定义。例如,您不能在附加到 Flash 文档 (FLA) 中的帧或按钮的脚本中定义类。若要创建一个外部 AS 文件,请使用 Flash 附带的动作脚本编辑器,或您常用的代码或文本编辑器。

注意:发布、导出、测试或调试 FLA 文件时,外部文件中的动作脚本代码将被编译成 SWF 文件。因此,如果对外部文件进行了任何更改,则必须保存该文件,并重新编译使用它的任何 FLA 文件。

在下面的步骤中,您将创建一个名为 Person 的类。这个类包含两个属性(agename)和一个方法 (showInfo()),调用该方法将在“输出”面板中显示这两个属性的值。

创建类文件:

  1. 在您的硬盘上新建一个目录,并将其命名为“PersonFiles”。该目录将包含此项目的所有
    文件。
  2. 执行以下其中一项操作:
    • 使用您常用的文本或代码编辑器新建一个文件。
    • (仅限 Flash Professional)选择“文件”>“新建”,打开“新建文档”对话框;从文件类型列表中选择“动作脚本文件”,然后单击“确定”。“脚本”窗口将打开并显示一个空文件。
  3. 将该文件保存到 PersonFiles 目录中,文件名为 Person.as。
  4. 在脚本窗口中,输入以下代码:
    class Person {
    }
    

    这称作类声明。最基本的类声明应包括:一个 class 关键字,后面跟有类名(本例中为 Person),然后跟有一对大括号 ({})。大括号内的所有内容都称作类体,类的属性和方法都在其中定义。

    注意:类的名称 (Person) 应与包含该类的 AS 文件 (Person.as) 相匹配。这非常重要;如果这两个名称不匹配,将无法编译类。

  5. 若要创建 Person 类的属性,请使用 var 关键字定义两个名称分别为 agename 的变量,如下所示。
    class Person {
    
      var age:Number;
      var name:String;
    
    }
    

    提示:按照约定,应在类体的最前面定义类属性(这可以使代码更易让人理解),但不是非要这样做。

    请注意变量声明中使用的冒语法号(var age:Numbervar name:String)。这就是严格数据类型指定的一个示例。按这种方式键入变量时 (var variableName:variableType),动作脚本 2.0 编译器将确保赋给该变量的任何值都与指定的类型匹配。虽然不是非要按照此语法定义变量,但这是一个好习惯,并且可以使脚本调试更容易。(有关更多信息,请参见严格数据类型指定。)

  6. 下一步将创建 showInfo() 方法。该方法返回一个预先设置好格式的字符串,其中包含 agename 属性的值。在类体中添加 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() 函数的返回值的数据类型(字符串)。

  7. 本节中您将添加的最后一段代码是一个称作构造函数 的特殊函数。在面向对象的编程中,构造函数初始化类的每个新实例。

    构造函数的名称必须类的名称相同。若要创建该类的构造函数,请添加以下代码:

    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() 构造函数有两个参数 myNamemyAge,并将这两个参数的值赋给 nameage 属性。这两个参数的数据类型分别被严格指定为 String 和 Number。有关构造函数的更多信息,请参见构造函数

    注意:如果不创建构造函数,编译过程中将自动创建一个空构造函数。

  8. 将该文件保存到您在第 1 步中创建的 PersonFiles 目录中,文件名为 Person.as。

    如果您正在使用 Flash MX 2004(而不是 Flash Professional),请参见创建 Person 类的实例

  9. (仅限 Flash Professional)选择“工具”>“语法检查”,或按下 Control+T 组合键 (Windows) 或 Command+T 组合键 (Macintosh),对该类文件进行语法检查。

    如果“输出”面板中报告有错误,请对您脚本中的代码与上面第 7 步中的最终代码进行比较。如果您无法修复代码中的错误,请复制第 7 步中的完整代码。