2012-09-17 96 views
0

我有一個空數組,用於收集從函數中的另一個數組中隨機選擇的十六進制值。我試圖從被填充的陣列拉的十六進制值,並將它傳遞給另一個函數,隨意改變粒子系統的顏色值...as3將數組中的字符串傳遞給函數

private var ca:Array = new Array(); 
private var rc:String = ca; // pseudo...this is the string that needs to get passed 

    public function addCursor(cursor:Cursor):void { 

    var cc:Array = new Array("0xFFFF33", "0xFFFFFF", "0x79DCF4", "0xFF3333", "0xFFCC33", "0x99CC33"); 
    var rcc:String = cc[Math.floor(Math.random() * (cc.length))]; 
    ca.push(rcc); // 


    trace(rcc + ' 1st array'); 
    trace(ca + ' 2nd array'); 
    trace(rc + ' string to pass'); 

// unrelated stuff happens down here... 

的第一和第二陣列都跟蹤相同的十六進制價值,但我無法找到正確的方式來捕獲該字符串... ive嘗試了幾種不同的方法,所有返回'空'...這讓我想,也許價值是在我試圖阻止它之前離開數組?

我刪除了ca.pop()它在稍後的函數中被調用,只是爲了看看rc是否仍然會返回一個null值。

回答

1

rcc是一個字符串,而不是一個數組。

所以

trace(rcc + ' chosen hex as a string'); 

但我不明白爲什麼你需要一個數組(CA)只持有一個字符串。

這會工作:

private var rc:String; 
private var cc:Array = new Array("0xFFFF33", "0xFFFFFF", "0x79DCF4", "0xFF3333", "0xFFCC33", "0x99CC33"); 

public function addCursor(cursor:Cursor):void { 

rc = cc[Math.floor(Math.random() * (cc.length))]; 

trace(rc + ' the chosen hex'); 

} 
+0

啊!咄。歡呼...我想它會超過它。工作只是丹迪:)謝謝。 – MaxG