2012-09-17 97 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