8.電影剪輯變量的生存期 此前,我們說過變量的作用域反映了兩個問題,(1)變量能存在多長時間?(2)在代碼中的哪些地方能夠設(shè)置并取回變量的值?
對于電影剪輯變量,我們已經(jīng)知道了有關(guān)回答第二個問題的要素。但是我們跳過了對第一個問題的回答,F(xiàn)在,讓我們回過頭來面對它,并提出最后一個有關(guān)代碼中變量的設(shè)想。
7.1設(shè)想五 假設(shè)我們創(chuàng)建有三個關(guān)鍵幀的新電影。在幀一上,我們放置一個電影剪輯實(shí)例,ball。在ball的時間軸上,我們創(chuàng)建一個變量,radius。然后我們右鍵點(diǎn)擊幀二,在彈出菜單中選擇插入關(guān)鍵幀,以使幀二上的內(nèi)容和幀一中的完全一樣。主時間軸上的幀三是空白關(guān)鍵幀(ball實(shí)例不會在那里出現(xiàn))。
在主時間軸上的幀二,我們可以使用下列代碼查明變量radius的值: trace (ball.radius); stop ();
現(xiàn)在,提出問題:在主時間軸上,如果我們將上面的代碼從幀二移動到幀三,當(dāng)電影測試時,Output窗口中會出現(xiàn)什么?
答案:什么也不會出現(xiàn)(或出現(xiàn)undefined)。因?yàn)殡娪凹糨媽?shí)例ball并不在主時間軸的幀三上,因此ball中的所有變量對于此幀來說都是不可見的。
又一個問題,如果將上述代碼從幀二向前移動到幀一而不是幀三,那么Output窗口又會出現(xiàn)什么呢?
答案:同樣,什么也沒有(或出現(xiàn)undefined)。為什么?ball出現(xiàn)在該幀中呀,怎么還是什么也沒有呢?這是有關(guān)時間軸的問題,留點(diǎn)懸念,我們會在以后的章節(jié)中徹底地揭開謎底。
提示:只有當(dāng)電影剪輯實(shí)例在工作區(qū)中呈現(xiàn)的時候,定義在電影剪輯時間軸上的電影剪輯變量才能持續(xù)(因?yàn)槊枋龅氖亲兞康纳嫫,所以我用持續(xù)這個詞來表示可使用或可利用的意思)。定義在某個Flash文檔的主時間軸上的變量在該文檔中一直持續(xù),除非該文檔被從播放器中卸載(卸載可以通過unloadMovie ()函數(shù)完成,或者是因?yàn)榱硪粋電影被加載到該電影所在的電影文檔層上而發(fā)生的自動卸載)。
如果用腳本編輯某電影,而該電影中包含了一些電影剪輯,這些電影剪輯又被放置在不同時間軸的多個幀上,這時你會發(fā)現(xiàn)有關(guān)變量生存期的概念是多么重要。在你試圖使用某個電影剪輯中的變量之前,一定要而且永遠(yuǎn)要確保該電影剪輯呈現(xiàn)在某個時間軸上。
出處:藍(lán)色理想
責(zé)任編輯:無意
上一頁 變量(7)- 在不同的時間軸上訪問變量 下一頁 變量(9)- 局部變量
◎進(jìn)入論壇Flash專欄版塊參加討論
|