actionscript-3 - ActionScript:如何按 VALUE 而不是 REFERENCE 分配数组?

标签 actionscript-3 apache-flex actionscript

我发现通过引用方法使用 ActionScript 的数组分配并不熟悉。我了解它在做什么,但不知何故,我发现使用这种方法管理许多阵列很令人困惑。有没有一种简单的方法来处理 ActionScript 数组,其中数组分配是通过 VALUE 而不是 REFERENCE 的?例如,如果我想分配 oneArraytwoArray如果将来不将两个数组永远相互链接,该怎么办?这行得通吗?

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/

相关文章:

flash - Actionscript 3.0麦克风分贝

actionscript-3 - 对象和*之间的区别?

android - 如何与 Adob​​e Air 的锁屏播放器控件集成?

actionscript - swf 中使用的神秘 Assets ,在 fla 中找不到?

actionscript-3 - 从播放 h.264 (mp4) 视频的视频显示器中捕获位图数据

javascript - JavaScript 和 ActionScript 3 之间的主要区别是什么?

javascript - 在浏览器中手动缓存 SWF/SWC - 模仿 Adob​​e 的签名 SWZ?

apache-flex - 使用 Actionscript 更改字符串中的字符

objective-c - 单击 MAC float 窗口中的按钮后将焦点返回到编辑器

flash - Chrome 21 Pepper Flash 中 ActionScript AIR 安装检测失败的解决方案有哪些?