我发现通过引用方法使用 ActionScript 的数组分配并不熟悉。我了解它在做什么,但不知何故,我发现使用这种方法管理许多阵列很令人困惑。有没有一种简单的方法来处理 ActionScript 数组,其中数组分配是通过 VALUE 而不是 REFERENCE 的?例如,如果我想分配 oneArray
至 twoArray
如果将来不将两个数组永远相互链接,该怎么办?这行得通吗?
var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array(3);
for (ii=0; ii<3; ii++) { twoArray[ii] = oneArray[ii]; }
意图是能够改变
twoArray
没有看到 oneArray
的变化.任何建议如何通过 VALUE 而不是 REFERENCE 分配数组?
- - 以供引用 - -
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html
数组赋值是通过引用而不是通过值。当您将一个数组变量分配给另一个数组变量时,两者都引用同一个数组:
var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array = oneArray; // Both array variables refer to the same array.
twoArray[0] = "z";
trace(oneArray); // Output: z,b,c.
最佳答案
您可以克隆数组以保证每个 Array 元素中具有相同值的两个单独副本:
var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array = oneArray.concat();
twoArray[0] = "z";
trace(oneArray); // Output: a,b,c
希望这就是你要找的。
关于actionscript-3 - ActionScript:如何按 VALUE 而不是 REFERENCE 分配数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186215/