当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > ActionScript3.0中类的定义以及类属性

ActionScript
FLASH 3D相册之利用BitmapData类制作
Flash 脚本游戏开发教程 第一课
Flash 脚本游戏开发教程第二课
Flash 脚本游戏开发教程第三课
Flash 脚本游戏开发教程第四课
Flash 脚本游戏开发教程第五课
Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第八课
Flash AS实现的蝌蚪摆尾动画的教程
从基础开始深入学Flash AS3教程(4)(译文)
从基础开始深入学Flash AS3教程(5)(译文)
从基础开始深入Flash AS3教程(2)(译文)
从基础开始深入学Flash AS3教程(3)(译文)
Flash AS3对单个图片进行角色动作化处理
从基础开始深入Flash AS3教程(1)(译文)
Flash教程:if条件语句的用法
Flash AS教程:_visible属性的详细讲解
Flash AS教程:图片环绕旋转效
Flash教程:trace()的使用

ActionScript3.0中类的定义以及类属性


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 188 ::
收藏到网摘: n/a

类定义

ActionScript 3.0 类定义使用的语法与 ActionScript 2.0 类定义使用的语法相似。正确的类定义语法中要求 class 关键字后跟类名。类体要放在大括号 ({}) 内,且放在类名后面。例如,下面的代码创建名为 Shape 的类,其中包含名为 visible 的变量:

public class Shape
{ var visible:Boolean = true;
}

对于包中的类定义,有一项重要的语法更改。在 ActionScript 2.0 中,如果类在包中,则在类声明中必须包含包名称。在 ActionScript 3.0 中,引入了 package 语句,包名称必须包含在包声明中,而不是包含在类声明中。例如,以下类声明说明如何在 ActionScript 2.0 和 ActionScript 3.0 中定义 BitmapData 类(该类是 flash.display 包的一部分):

// ActionScript 2.0
class flash.display.BitmapData {}
// ActionScript 3.0
package flash.display
{ public class BitmapData {}
}

类属性

在 ActionScript 3.0 中,可使用以下四个属性之一来修改类定义:

属性

定义

dynamic

允许在运行时向实例添加属性。

final

不得由其它类扩展。

internal(默认)

对当前包内的引用可见。

public

对所有位置的引用可见。

使用 internal 以外的每个属性时,必须显式包含该属性才能获得相关的行为。例如,如果定义类时未包含 dynamic 属性 (attribute),则不能在运行时向类实例中添加属性 (property)。通过在类定义的开始处放置属性,可显式地分配属性,如下面的代码所示:

dynamic class Shape {}

请注意,列表中未包含名为 abstract 的属性。这时因为 ActionScript 3.0 不支持抽象类。另外,该清单也未包含名为 privateprotected 的属性。这些属性只在类定义中有意义,但不可以应用于类本身。如果不希望某个类在包以外公开可见,请将该类放在包中,并用 internal 属性标记该类。或者,可以省略 internalpublic 这两个属性,编译器会自动为您添加 internal 属性。如果不希望某个类在定义该类的源文件以外可见,请将类放在包定义右大括号下面的源文件底部。

类体

类体放在大括号内,用于定义类的变量、常量和方法。下面的示例显示 Adobe Flash Player API 中 Accessibility 类的声明:

public final class Accessibility
{ public static function get active():Boolean; public static function updateProperties():void;
}

还可以在类体中定义命名空间。下面的示例说明如何在类体中定义命名空间,以及如何在该类中将命名空间用作方法的属性:

public class SampleClass
{ public namespace sampleNamespace; sampleNamespace function doSomething():void;
}

ActionScript 3.0 不但允许在类体中包括定义,而且还允许包括语句。如果语句在类体中但在方法定义之外,这些语句只在第一次遇到类定义并且创建了相关的类对象时执行一次。下面的示例包括一个对 hello() 外部函数的调用和一个 trace 语句,该语句在定义类时输出确认消息:

function hello():String
{ trace("hola");
}
class SampleClass
{ hello(); trace("class created");
}
// output when class is created
hola
class created

与以前版本的 ActionScript 相比,ActionScript 3.0 中允许在同一类体中定义同名的静态属性和实例属性。例如,下面的代码声明一个名为 message 的静态变量和一个同名的实例变量:

class StaticTest
{ static var message:String = "static variable"; var message:String = "instance variable";
}
// In your script
var myST:StaticTest = new StaticTest();
trace(StaticTest.message); // output: static variable
trace(myST.message); // output: instance variable