2013-06-19 41 views
0

我寫了一個數組,其中,當發生命中測試時,應將數字推入數組中。然而,當我使用myArray.push時,它會輸入數字,當我再次調用myArray.push時,而不是再次輸入數字並在我的數組中有2個數字,它只是在同一個點中輸入數字。所以,如果我使用trace(myArray.length),無論推送了多少次,它都會說我存儲了1個數字。 這是我的代碼:數組填寫不正確AS3

if (hitTestObject(target.hit)) { 
    //pushes a number into an array 
    myArray.push(); 

    //checks array length 
    if (myArray.length == 3) { 
     //do stuff 
    } 
} 

我試過數字,字符串,和的Math.random()在myArray.push()的參數,但我總是隻具有1項相同的結果我的陣列。 作爲參考,這是我寫我的變量是:

public var myArray:Array = new Array(); 
+0

您需要發佈更多的代碼。很可能你每次都在重新創建數組,但不能從代碼中知道。 –

回答

1

你要的東西推到數組。嘗試:

myArray.push(myArray.length); 

但是,它看起來像增加一個數字而不是創建一個數組會更好。一個數組是將被引用的對象的容器。所以,除非你需要跟蹤數組中第三個對象實際上是'2'......這個數組是無用的。嘗試創建一個數字並每次增加變量。像這樣:

// Declared outside of the function 
var integer:int = 0; 

// 
if (hitTestObject(target.hit)) { 
    integer = integer + 1; 
    // likewise you could use ++integer or integer++; 

    if (integer == 3) { 
     //do stuff 
    } 
} 
+0

所以,我實際上將數組的長度推入數組? –

+0

好吧,所以而不是一個數字,我只是通過int到myArray.push,並且工作,所以而不是myArray.push(1);,我有myArray.push(int)。這是正確的,還是我的代碼從一個奇蹟般的錯誤工作? –

+0

每次推動時,陣列的長度將自動增加。當然,起初這個長度是零(0),但是每次你點擊這段代碼時,這個長度就會增加。基本上給你一個看起來像[0,1,2,3,4,5,6等]的數組。 – Corey

1

根據你的代碼,你實際上並沒有將任何東西推入數組中。

正確的語法是:

myArray.push(something); 
+0

是的,我使用了不同的數字,字符串和Math.random,就像我上面說的 –

+0

你沒有想到你在做什麼。最好讓你退後一步並瞭解陣列,而我所說的對你來說不會是個謎。很可能你的代碼中散佈着類似的其他誤解,所以如果有的話,這個過程不會對你有太大的幫助。 – prototypical

+0

Yeha,我想你是對的。我通過反覆試驗學得最好,所以我想這就是我想要做的,但我會回去重新學習一些東西。 –