ActionScript 3は、デフォルトで参照によって配列を渡します。私は新人の間違いを犯しているに違いありません。これが私のコードのスナップショットです:
private function testFunc():void {
var testArray:Array=new Array();
myFunction(testArray);
trace(testArray); // []; length=0
}
private function myFunction(tArray:Array):void {
tArray = myOtherFunction();
trace(tArray); // 0, 1, 2; length=3
}
private function myOtherFunction():Array {
var x:Array=new Array;
for (var i:int=0; i<3; i++)
x[i]=i;
return x;
}
tArray
私はそれが正しいことを見ることができますが、testArray
常に空です。testArray
等しくする方法はありtArray
ますか?前もって感謝します。
http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000049.html
アップデート:
その価値について、私は次の変更(ハック)が機能することを発見しました:
private function myFunction(tArray:Array):void {
var Z:Array=new Array;
Z = myOtherFunction();
for (var i:int=0; i<Z.length; i++)
tArray[i]=Z[i];
}
ただし、Georgiiのソリューションはより優れた設計です。