青岛设计网标志 搜艺招聘
   Guest:  登陆 | 注册 | 网站首页 | 论坛首页 | 我的贴子 | 修改资料 | 留言板 | | 论坛帮助  | 论坛首页  

  论坛首页   FLASH  关于Flash中变量的声明和寿命

[公告]快到[搜艺招聘网]发布招聘信息 注册简历、发布自己作品! :)  
关于Flash中变量的声明和寿命  
    QQD

查看QQD的博客


金钱: 2201
Level: 0
发帖数: 347
最后登陆: 2007/10/25
注册时间: 2004/10/18


[鍜界値鍚冧粈涔堣嵂]姣忓ぉ娉2琚嬶紝鍧氭寔30澶╋紝鍜界値濂藉鍒
信息 | 留言 | 引用 | 回复 | 编辑 | 置顶 | 移动 | 删除

关于Flash中变量的声明和寿命
前些天,看到 这个贴子,就有一些疑问,没来得及仔细讨论,其实这个问题很重要,Flash 的 actionScript 和其他的语言有不同的地方,我查了几本书,把我所了解的补充一下。

1.Flash没有真正意义上的全局变量,这点和 Director 不同,全局变量是指一旦声明,在整个电影都有效,这点Flash 是做不到的。对于我们来说,要讨论的是:

a: 一个变量可以存在多久?

b: 怎样设定和提取变量值?

2. Flash 的变量只在其所在的时间线上有效。在某个时间线上声明的任何变量对于该时间线上的所有 scripts 来说都有效。所以对于在 movieClip 的时间线上声明的变量, 如果要在主时间线上调用,就必须使用点语法来指向所要针对的 movieClip ,也就是对象(object).

3.对于 movieClip里的变量来说,其寿命和该 movieClip 的在舞台上的instance的寿命相当。也就是说,一旦这个 instance 从舞台上消失(不是指它的 visual appearance ), 那么其中的变量也同时消失了。同样的道理对于主时间线上的变量来说, 一旦 unload 该 swf ,那它上面的变量也就消失了,或者说不可以在被调用了。

4. var 是的非常好的习惯,正如斑竹所说的,每次声明变量用 var,很规范,很专业,而且尽可能的先声明,再赋值,尽管 Flash 5 在这一点上很宽松。

5. 在function 里使用 var 来声明变量是标准的局部变量,也就是说只在 function 内有效。如果不用 var 来声明,仍然是非局部变量。

下面的例子也许可以说明这个问题。

var x = 1//在function外,只是非局部变量 x,赋值为1
function demo()
{ x=10; //非局部变量 x,重新赋值为10
y=20;//非局部变量 y,赋值为20
var z=30;//在function内是局部变量 z,赋值为30
trace(x+","+y+","+z); //在output窗口显示结果
} demo();//调用function, 结果是10, 20,30
trace(x);//结果是10, function内的重新赋值还是有效
trace(y);//结果是20
trace(z); //结果是nothing, 因为是局部变量, 只在function内有效
出处:蓝色理想





2006/3/20
信息 | 留言 | 引用 | 回复 | 编辑 | 置顶 | 移动 | 删除


青岛设计网版权所有
本论坛言论纯属发表者个人意见