AS 2.0 static 关键字

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

static关键字在 ActionScript 2.0 里面也比较重要。如果一个属性是静态的,那么我们可以直接调用……

static(静态)关键字在 ActionScript 2.0 里面也比较重要。如果一个属性是静态的,那么我们可以直接调用,而不用去使用类的Instance 来调用。大部分属性都是要通过类的 Instance 来操作的,那就意味着,它们不是静态的。

例子:

// 创建 myClass 的 Instance myInstance

myInstance = new myClass();

// 调用其中一个属性

trace(myInstance.property1);

如果这个属性 property1 是静态的,那么我们就可以直接这样调用:

// 直接通过主类调用

trace(myClass.property1);

在 Flash 里面,拥有最多静态属性的类可能就是 Date 了,它所有的属性都是通过直接调用 Date 类获得的。我们可以直接这样:Date.getUTCMinutes(),而不用创建一个新的 Instance ,再通过这个 Instance 去获得需要的属性。可以这样说,静态的属性或者方法只会在主类里面创建一次,而不需要在每一个类成员里面都复制一个。

我们可以自己创建静态属性或者方法。下面是一个例子:

class Geometry {

static function getDistance(mc1, mc2) {

var distance:Number = Math.sqrt((mc1._x - mc2._x)*(mc1._x - mc2._x)+(mc1._y

- mc2._y)*(mc1._y - mc2._y));

return distance;

}

}

静态函数 getDistance() 会返回两个 MovieClip 之间的距离。我们可以在其它文件里面这样调用它:

distance_between_2_dots = Geometry.getDistance(dot1, dot2);

如果您去掉“static”,然后还想像上面的方法一样调用 getDistance(),那么您将得到如下的 AS 2.0 出错信息:

The property being referenced does not have the static attribute

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航