关于Flash中变量的声明和寿命

2008-04-02 10:35:36来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  前些天,看到 这个贴子,就有一些疑问,没来得及仔细讨论,其实这个问题很重要,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内有效

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Flash制作一个简易的计算器教程

下一篇: 用FLASHAS实现鼠标画圆的效果