Flash Player 6。
[dynamic] classclassName
[ extendssuperClass
][ 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());
dynamic、extends、implements、interface、new