2011-05-29 103 views
0

我有一個數組,它是類引用的文字名稱。例如。在我的主類我有幫助將基於字符串的數組轉換爲類變量名稱

var page1:PageOne = new PageOne(); 
var page2:PageTwo = new PageTwo(); 
var page3:PageThree = new PageThree(); 

var sectionsArray = new Array ('page1', 'page2', 'page3') 

我想寫什麼,但不能爲:

var sectionsArray = new Array (page1, page2, page3) 

我想基於這些值補間的東西,但由於該值字符串類型,我不能將這些值與它們表示的類引用相關聯。所以,我想是這樣的:

var tweenObj:Object = _sectionsArray[0] as Object 
TweenLite.to(tweenObj, 1, {alpha:0}); 

但是,這一切都爲使其String類型的對象(並拋出一個TweenLite的錯誤,因爲我試圖吐溫字符串),這並不能幫助我。

什麼是更好的方式來思考處理我想要做的事情?

非常感謝!

回答

2

您可以使用[]啓動代替。它不僅可以與你試圖達到的效果相比更快,而且可以比使用新的更快。

var sections:Array = [page1, page2, page3]; 

然後使用對象時,你只需要做:

TweenLite.to(sections[0], 1, {alpha:0}); 

既然已經數組,你不需要使用他們Tweenlite之前強制轉換他們的權利類型中的所有對象。

概念證明:

var page1:Sprite = new Sprite(); 
var page2:Sprite = new Sprite(); 
var page3:Sprite = new Sprite(); 

var sections:Array = [page1, page2, page3]; 

trace(sections[0]); 
trace(sections[1]); 
trace(sections[2]); 

輸出:

[object Sprite] 
[object Sprite] 
[object Sprite] 
+0

對不起..想我可以在此評論張貼代碼.. – user758364 2011-05-29 10:48:47

+0

編輯你的問題,並把你的輸出和解釋更詳細地說明你正在接受什麼樣的錯誤。 – rzetterberg 2011-05-29 11:00:18

+0

非常感謝。我之前曾經嘗試過,之所以失敗的原因是因爲我在交換機的腳本中深入實例化了我的頁面類,所以它跟蹤爲空。當我把page1:PageOne = new PageOne放在構造函數之前時,它一切正常。再次感謝!! – user758364 2011-05-29 11:03:13