class

可用性

Flash Player 6。

用法

[dynamic] class className  [ extends superClass ] 
              [ implements interfaceName [, interfaceName... ] ]
{
  // 此处为类定义
}

注意:若要使用此关键字,必须在 FLA 文件的“发布设置”对话框的“Flash”选项卡上指定“动作脚本 2.0”和“Flash Player 6”或更高版本。仅支持在外部脚本文件中使用此关键字,而不支持在用“动作”面板编写的脚本中使用此关键字。

参数

className 类的全限定名。

superClass 可选;className 扩展(继承自)的类的名称。

interfaceName 可选;其 className 方法必须实现的接口的名称。

说明

语句;定义一个自定义类,通过该自定义类可以实例化共享您定义的方法和属性的对象。例如,如果您正开发一个发票跟踪系统,则可以创建一个发票类,它定义每一发票应具有的所有方法和属性。然后您可以使用 new invoice() 命令来创建发票对象。

该类的名称必须与包含该类的外部文件的名称相同。例如,如果您将一个类命名为 Student,则定义该类的文件必须被命名为 Student.as。

该类名称在声明该类的文件内必须是全限定的;即,该类名称必须反映存储它的目录。例如,要创建存储在 myClasses/education/curriculum 目录中的名为 RequiredClass 的类,您必须按如下所示在 RequiredClass.as 文件中声明该类:

class myClasses.education.curriculum.RequiredClass {
}

因此,最好在开始创建类之前就计划好您的目录结构。否则,如果您在创建类文件之后决定移动它们,就将不得不修改类声明语句以反映其新位置。

您不能嵌套类定义;即,不能在一个类定义内定义其它类。

若要指示对象可在运行时添加和访问动态属性,应在类语句前面放置 dynamic 关键字。若要基于接口创建类,请使用 implements 关键字。若要创建一个类的子类,请使用 extends 关键字。(某一类只能扩展一个类,但可以实现多个接口。)您可以在一个语句中使用 implements
extends

class C implements Interface_i, Interface_j    //可以
class C extends Class_d implements Interface_i, Interface_j    // 可以
class C extends Class_d, Class_e    // 不可以

有关更多信息,请参见创建和使用类

示例

下面的示例创建一个名为 Plant 的类。其构造函数采用两个参数。

// 文件名 Plant.as
class Plant {
  // 定义属性名称和类型
  var leafType:String;
  var bloomSeason:String;
  // 以下行是构造函数
  // 因为它具有与类相同的名称
  function Plant (param_leafType:String, param_bloomSeason:String) {
      // 在创建新的 Plant 对象时向属性分配传递的值
    leafType = param_leafType;
    bloomSeason = param_bloomSeason;
  }
  // 创建返回属性值的方法,因为最佳实践
  // 建议直接引用一个类的属性
  function getLeafType():String {return leafType};
  function getBloomSeason():String {return bloomSeason};
}

在外部脚本文件或“动作”面板中,使用 new 运算符创建一个 Plant 对象。

var pineTree:Plant = new Plant("Evergreen","N/A");
// 确认参数已正确传递
trace(pineTree.getLeafType());
trace(pineTree.getBloomSeason());

另请参见

dynamicextendsimplementsinterfacenew