2013-05-02 82 views
0

我需要讓screenPage var可供以後調用訪問。我正在動態創建幾個頁面。問題是當我撥打screenPage.startDrag();時,它只拖動最後一頁。我如何在名稱中添加一個var,或者讓所有screenPages通過代碼訪問?as3循環中的動態變量

這裏是代碼簡稱:

var screenPage:MovieClip; 

for(var p = 1; daTotalPages >= p; p++) 
{ 
    screenPage = new theFlagScreen(); 
} 

我可以screenPage動態無功,並在末尾添加像1,然後2等等與循環?

+0

我不知道還有什麼要改變,以使這個更好。謝謝 – 2013-05-07 07:20:28

回答

3

爲什麼不使用數組?

var pages:Array = new Array; 

for(var p = 1; daTotalPages >= p; p++) 
{ 
    var screenPage:MovieClip = new theFlagScreen(); 
    pages.push(screenPage) 
} 

現在你有一個包含所有實例的數組。

var myPage:MovieClip = pages[5] as MovieClip; 
myPage.startDrag(); 

而且,你在上面通過每次創建一個實例,但此後你繼續前進,創造一個新的每次迭代,並將其分配到相同的變量不存儲,或將其添加到代碼顯示列表....一旦你創建一個新的,最後一個被標記爲垃圾收集。

結果是隻有您創建的LAST實例仍然存在,因爲它是唯一一個具有引用它的變量。

+0

真棒,謝謝。那樣做了。驚人!我喜歡stackoverflow的人!這麼快,給予! – 2013-05-02 04:54:43

+0

這將有所幫助。謝謝。如果問題得到解答,我認爲你不會收到我的評論。我猜。我喜歡這個網站,但我希望他們能讓它更自由一點。我正在盡我所能。 – 2013-05-07 05:35:47

1

screenPage只是一個參考。在你的循環中,你繼續覆蓋它,所以最後它指向theFlagScreen的最後一個實例...所有其他的都丟失了。

你應該遵循原型的建議,並將這些實例存儲在一個數組中,這樣你就不會失去它們。