0

関数内の別の配列からランダムに選択された16進値を収集する空の配列があります。塗りつぶされた配列から16進値を取得し、それを別の関数に渡して、パーティクルシステムのカラー値をランダムに変更しようとしています...

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

1番目と2番目の配列は両方とも同じ16進値をトレースしますが、その文字列をキャプチャする正しい方法を見つけることができません...すべてが「null」を返すいくつかの異なるメソッドを試しました...これにより、値が私がそれを引っ掛けようとする前に配列?

ca.pop()後の関数で呼び出されるものを削除しましたが、rcそれでもnullが返されるかどうかを確認するために、それが返されます。

4

1 に答える 1

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');

}
于 2012-09-17T18:19:57.247 に答える