变量

可以使用 varconst 关键字声明变量。在脚本的整个执行过程中,使用 var 关键字声明的变量可多次更改其变量值。使用 const 关键字声明的变量称为“常量”,只能赋值一次。尝试给已初始化的常量分配新值,将生成错误。有关详细信息,请参阅常量

子主题

静态变量
实例变量

静态变量

静态变量是使用 static 关键字和 varconst 语句共同声明的。静态变量附加到类而不是类的实例,对于存储和共享应用于对象的整个类的信息非常有用。例如,当要保存类实例化的总次数或者要存储允许的最大类实例数,使用静态变量比较合适。

下面的示例创建一个 totalCount 变量(用于跟踪类实例化数)和一个 MAX_NUM 常量(用于存储最大实例化数)。totalCountMAX_NUM 这两个变量是静态变量,因为它们包含的值应用于整个类,而不是某个特定实例。

class StaticVars
{
    public static var totalCount:int = 0;
    public static const MAX_NUM:uint = 16;
}

StaticVars 类及其任何子类外部的代码只能通过该类本身来引用 totalCountMAX_NUM 属性。例如,以下代码有效:

trace(StaticVars.totalCount); // 输出:0
trace(StaticVars.MAX_NUM); // 输出:16

不能通过类实例访问静态变量,因此以下代码会返回错误:

var myStaticVars:StaticVars = new StaticVars();
trace(myStaticVars.totalCount); // 错误
trace(myStaticVars.MAX_NUM); // 错误

必须在声明常量的同时初始化使用 staticconst 关键字声明的变量,就像 StaticVars 类初始化 MAX_NUM 那样。您不能为构造函数或实例方法中的 MAX_NUM 赋值。以下代码会生成错误,因为它不是初始化静态常量的有效方法:

// !! 采用这种方法初始化静态常量将发生错误
class StaticVars2
{
    public static const UNIQUESORT:uint;
    function initializeStatic():void
    {
        UNIQUESORT = 16;
    }
}

实例变量

实例变量包括使用 varconst 关键字但未使用 static 关键字声明的属性。实例变量附加到类实例而不是整个类,对于存储特定于实例的值很有用。例如,Array 类有一个名为 length 的实例属性,用来存储 Array 类的特定实例保存的数组元素的个数。

不能覆盖子类中声明为 varconst 的实例变量。但是,通过覆盖 getter 和 setter 方法,可以实现类似于覆盖变量的功能。有关详细信息,请参阅get 和 set 存取器方法


Flash CS3

 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000063.html