as3将数组中的字符串传递给函数

时间:2012-09-17 17:53:23

标签: arrays string actionscript-3

我有一个空数组,收集从函数中另一个数组中随机选择的十六进制值。我试图从填充的数组中拉出十六进制值,并将其传递给另一个函数,以随机更改粒子系统的颜色值...

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...

第一个和第二个数组都跟踪相同的十六进制值,但我找不到正确的方法来捕获该字符串...我尝试了几种不同的方法都返回'null'...这让我觉得可能是值在我试图阻止它之前离开阵列?

我删除了在后面的函数中调用的ca.pop(),只是为了查看rc是否仍会返回null并且确实如此。

1 个答案:

答案 0 :(得分: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');

}