关于Flash中变量的声明和寿命
2008-04-02 10:35:36来源:互联网 阅读 ()
前些天,看到 这个贴子,就有一些疑问,没来得及仔细讨论,其实这个问题很重要,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实现鼠标画圆的效果
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash