前些天,看到 這個(gè)貼子,就有一些疑問(wèn),沒(méi)來(lái)得及仔細(xì)討論,其實(shí)這個(gè)問(wèn)題很重要,F(xiàn)lash 的 actionScript 和其他的語(yǔ)言有不同的地方,我查了幾本書,把我所了解的補(bǔ)充一下。
1.Flash沒(méi)有真正意義上的全局變量,這點(diǎn)和 Director 不同,全局變量是指一旦聲明,在整個(gè)電影都有效,這點(diǎn)Flash 是做不到的。對(duì)于我們來(lái)說(shuō),要討論的是:
a: 一個(gè)變量可以存在多久?
b: 怎樣設(shè)定和提取變量值?
2. Flash 的變量只在其所在的時(shí)間線上有效。在某個(gè)時(shí)間線上聲明的任何變量對(duì)于該時(shí)間線上的所有 scripts 來(lái)說(shuō)都有效。所以對(duì)于在 movieClip 的時(shí)間線上聲明的變量, 如果要在主時(shí)間線上調(diào)用,就必須使用點(diǎn)語(yǔ)法來(lái)指向所要針對(duì)的 movieClip ,也就是對(duì)象(object).
3.對(duì)于 movieClip里的變量來(lái)說(shuō),其壽命和該 movieClip 的在舞臺(tái)上的instance的壽命相當(dāng)。也就是說(shuō),一旦這個(gè) instance 從舞臺(tái)上消失(不是指它的 visual appearance ), 那么其中的變量也同時(shí)消失了。同樣的道理對(duì)于主時(shí)間線上的變量來(lái)說(shuō), 一旦 unload 該 swf ,那它上面的變量也就消失了,或者說(shuō)不可以在被調(diào)用了。
4. var 是的非常好的習(xí)慣,正如斑竹所說(shuō)的,每次聲明變量用 var,很規(guī)范,很專業(yè),而且盡可能的先聲明,再賦值,盡管 Flash 5 在這一點(diǎn)上很寬松。
5. 在function 里使用 var 來(lái)聲明變量是標(biāo)準(zhǔn)的局部變量,也就是說(shuō)只在 function 內(nèi)有效。如果不用 var 來(lái)聲明,仍然是非局部變量。
下面的例子也許可以說(shuō)明這個(gè)問(wèn)題。
var x = 1//在function外,只是非局部變量 x,賦值為1 function demo() { x=10; //非局部變量 x,重新賦值為10 y=20;//非局部變量 y,賦值為20 var z=30;//在function內(nèi)是局部變量 z,賦值為30 trace(x+","+y+","+z); //在output窗口顯示結(jié)果 } demo();//調(diào)用function, 結(jié)果是10, 20,30 trace(x);//結(jié)果是10, function內(nèi)的重新賦值還是有效 trace(y);//結(jié)果是20 trace(z); //結(jié)果是nothing, 因?yàn)槭蔷植孔兞浚?只在function內(nèi)有效
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
◎進(jìn)入論壇Flash專欄版塊參加討論
|