| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash特别应用 > 文章正文 用户登录
如何加入透明Flas
为新浪博客添加fl
flashget下载联盟
265联盟:“Flash
HKflash提供免费个
FLASH调用XML数据
Flash Remoting -
Flash Com
借助js在flash中運
flash事件模型核心

《Flash ActionScript 2.0-RIA应用程式开发》静态-概念与例子           

《Flash ActionScript 2.0-RIA应用程式开发》静态-概念与例子

作者:佚名 来源:闪吧 作者: hiphen 更新:2007-1-13 21:01:06 错误报告 我要投稿

注:以下引用出自<Flash ActionScript 2.0-RIA应用程式开发>,引用已得到本书作者:Luar的允许.

出自:http://www.cnflash.org/guohaifeng/blogview.asp?logID=18

对一个成员除了可以指明是私有或公有外,更可以指明它是否静态.
静态成员只存于类中,不会存于实体中,由于类只有一个,所以静态成员可以成为一个给所有实体共用的数据地方.假设有一个Ball类,所有球的实体都是受地心吸力影响,如果每个实体都记录了地心吸力属性gravity=9.8,只是浪费内存.不如将属性gravity设定为静态,放在类里,统一给所有实体共用.
注意:
当静态属性被改变了,所有实体都受影响,例如其中一个实体通过其方法将属性gravity改为23.128(或者类中属性gravity被直接修改),所有球的实体便变成了处于木星,受了木星地心吸力影响.
属性和方法都可以设定为静态,只要在”private/publie”后加上”static”这关键字.
例如,建立Ball类,代码如下:
以下内容为程序代码:
class Ball
{
public static var gravity:Number=9.8;
private static var ballno:Number=0;
function Ball()
{
ballno++;
}
}
新建一个Ball.fla文件,加入下面的代码,建立一个球的实体:
以下内容为程序代码:

myBall1 =new Ball();
trace(myBall1.gravity); //undefined
结果是undefined,虽然属性gravity是公有成员,但它是静态,只存于类,不存于属性,所以找不到它.

如果在Ball类加入隐含get方法:
以下内容为程序代码:
public function get _g():Number
{
return gravity;
}
在Ball.fla文件,加入代码:
以下内容为程序代码:
trace(myBall1._g); //9.8
结果是9.8,说明静态成员是经实体共用,但又不存于实体中.

如果在Ball类(Ball.as)加入隐含set方法:
以下内容为程序代码:
public function set _g(n:Number):Void
{
gravity=n;
}
在Ball.fla文件,再建立一个球的实体,并修改地心吸力为12:
以下内容为程序代码:
myBall2=new Ball();
myBall2._g=12;
trace(myBall1._g); //12
trace(myBall2._g); //12
结果不单是myBall2的地心引力变了,连myBall1的地心吸力都变了,因为所有实体是共用同一个属性gravity.

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。