2014-09-26 79 views
0

在我具有正方形導出爲級「cuad」上框架1動作3:如何訪問在循環中創建的數組元素動態

的FLA文件的庫我想創建Array有100個方格,以便日後移動

所以我這樣做:

for (var i:uint = 0; i<100;i++) 
{ 
var cuad_mc = new cuad(); 
addChild(cuad_mc);      
myArray.push("cuad_mc"); 
trace(myArray[i]); 
} 

我有一個運行時錯誤

+0

您正在將字符串推入數組中,而不是「cuad」對象。除此之外,代碼看起來不錯,向我們展示如何創建數組本身。 – DodgerThud 2014-09-26 11:03:04

+0

var myArray = new Array(); – 2014-09-26 11:34:03

+0

也看起來不錯,請發佈整個錯誤 – DodgerThud 2014-09-26 11:36:12

回答

3

您遇到的錯誤是

Error #1069: Did not find alpha propiety in the String and there is not any value predetermined

的問題來自於您的線路

myArray.push("cuad_mc"); 

你在做什麼這裏正在推動一個String對象到您的陣列,而不是你想要的cuad對象。字符串對象沒有Alpha值或x值。

你想要做什麼是

myArray.push(cuad_mc); 

cuad_mc(不帶「引號),就是你剛剛創建的對象的引用。

這應該解決您的問題。我還建議使用矢量而不是數組,如果你只需要存儲一個類型的對象是這樣的:

var myArray:Vector<cuad> = new Vector<cuad>(); 
for(var i:int=0;i<100;i++){ 
    var cuad_mc:cuad = new cuad(); 
    addChild(cuad_mc); 
    myArray.push(cuad_mc); 
    trace(myArray[i]); 
} 

載體就像數組,但他們只允許一個特定類型,這樣就不會出現像你這樣的情況。

+0

我覺得我有一個錯誤:import com.greensock。*; import com.greensock.easing。*; var myArray = new Array(); (var i:uint = 0; i <100; i ++) \t \t \t var cuad_mc = new cuad(); \t \t \t addChild(cuad_mc); \t \t \t myArray.push(cuad_mc); \t \t \t trace(myArray [i]); \t \t \t \t \t \t TweenMax.to(myArray的[30],1,{X:50,α-:1,改寫:真}); \t \t \t \t \t \t \t } – 2014-09-26 12:09:11

+0

你已經創造了他們之前,你無法操縱的對象。當循環仍然在1(我是0)時,你嘗試操作數組中的對象30,它還沒有創建。 – DodgerThud 2014-09-26 12:13:54

+0

好的,非常感謝。我會把它做出來的循環 – 2014-09-26 15:16:14