`

AS3数组复制

 
阅读更多

在actionscrip3.0中是没有提供内置的数组克隆的方法的,摸索了一下,如下得论:

1.浅层复制的话,可以使用Array类的concat()或者slice()的无参方法来创建一个新数组,如下:
    var bb:ArrayCollection = new ArrayCollection();
    var a:Dictionary = new Dictionary();
    a.name = "wodesign";
    a.age = 25;
    bb.addItem(a);
    bb.addItem("b");
    bb.addItem("c");
    bb.addItem("d");
    aa = new ArrayCollection(bb.source.concat());
    bb.removeAll();
删除bb内容后,aa保存了bb的内容。

2.深层复制,这样可以保证,将数组所有的内容,包括指向也进行复制,如下:
class User{
   public var id:int;
   public var name:String;
   public function User(id:int,name:String)
   {
       id=id;
       name = name;
    };
}

var user:User = new User(12,"wodesign");
var aa:Array = new Array();
aa.push(user);
// 开始做复制动作了哈
var byteArr:ByteArray = new ByteArray();
byteArr.writeObject(aa);
byteArr.position = 0;
var bb:Array = byteArray.readObject();
// 改值了哈
user.id = 28;
trace(aa[0].id);            // 28;
trace(bb[0].id);            // 12;

OK,还有其它更好的方法吗,分享吧

分享到:
评论

相关推荐

    VB 数组的复制实例

    在实际编程中,数组复制常用于数据备份、数据处理和并发场景。例如,在一个多线程程序中,为了防止并发修改数据引发的问题,可能需要先复制一份原始数组,然后在线程中对复制的数组进行操作。 总结,VB中的数组复制...

    as3corelib.swc及解析json的例子

    除了基本的解析,as3corelib还提供了许多高级功能,如序列化AS3对象到JSON字符串,处理嵌套结构,以及处理数组和日期类型。这个库还支持JSONP(JSON with Padding),一种跨域数据交互协议。 总的来说,as3corelib...

    AS3技术文档

    根据给定的文件信息,我们可以总结出一系列关于ActionScript 3.0(简称AS3)的关键知识点,这些知识点覆盖了AS3的多个方面,包括日期和时间管理、字符串操作、数组处理、错误处理、正则表达式使用、XML和JSON处理、...

    python numpy数组复制使用实例解析

    数组复制是常见的操作,但如果不理解其背后的机制,可能会导致意外的结果。本篇文章将深入解析Python NumPy中的数组复制,包括“不是复制”、“查看或浅复制”以及“深复制”三种情况。 1. **不是复制(No Copy at ...

    VB 数组内平移

    3. **复制元素**:根据平移步长,从原数组中复制元素到新数组。例如,如果步长为1,新数组的第一个元素将是原数组的第二个元素,依次类推。 4. **处理边界情况**:当元素移动到数组边界时,需要考虑是否循环回数组...

    as3比较详尽的工具类

    ArrayUtil.as ---------------------- 数组辅助功能 setFrameout.as ---------------------- 延迟(帧)函数 clearFrameout.as ---------------------- 清除延迟函数 delayOut.as ---------------------- 延迟...

    VB 动态数组实例

    - 避免频繁的`ReDim`操作,因为每次调整大小都会导致数组数据的复制,可能影响性能。 6. **数组限制**: VB中数组的大小受限于可用内存,而且最大维数为32维。同时,数组下标默认从0开始,但可以通过`Option Base...

    as3多文件下载计算文件总进度

    在AS3(ActionScript 3)中,进行多文件下载并计算总进度是一项常见的任务,尤其是在构建富互联网应用程序(RIA)时。以下是对这个主题的详细讲解。 首先,我们需要了解AS3中的基本加载机制。AS3提供了`flash.net....

    flash as3 截图,拍照

    在Flash AS3中,截取舞台画面,也称为屏幕快照或截图,是开发者经常需要进行的操作,尤其在游戏开发、交互式应用或者演示中。本文将深入探讨如何使用ActionScript 3.0来实现这一功能,并提供相关知识点。 1. **...

    删除数组中的元素vb6

    3. **删除元素的基本方法**:由于VB6数组不直接支持删除操作,通常需要通过以下步骤实现: - 先创建一个新的临时数组,用于存储保留下来的元素。 - 遍历原数组,遇到不需要删除的元素时,将其复制到新数组中。 - ...

    VB 数组元素做实参实例

    3. **引用和复制**:在VB中,基本类型(如Integer)的传递是按值传递,这意味着函数或过程中对参数的修改不会影响到原始数组的值。如果需要改变原数组的值,可能需要传递数组的引用或使用ByRef参数。 四、扩展应用 ...

    VB 数组中插入数据实例

    如果想在中间插入数据,可能需要创建一个新的、更大的数组,然后将原数组的数据复制过来,并在适当位置插入新数据。例如: ```vb Dim oldArray(4) As Integer ' 填充oldArray Dim newArray(5) As Integer ' 将...

    VB071-数组相加 源代码

    例如,可能使用了ByRef参数传递数组,以减少数据复制;或者在累加前检查数组是否为空,避免空数组导致的错误。 此外,源代码可能还会涉及多维数组的相加,这在处理矩阵运算或复杂的数学问题时非常常见。多维数组的...

    AS3开发指南

    3. **使用数组**:讨论数组的基本概念,包括索引数组、关联数组、多维数组以及如何克隆数组和扩展Array类。 4. **处理错误**:涵盖错误处理的基础知识,包括ActionScript 3.0中错误的类型、使用Flash运行时的调试版...

    VBcomnet数组空间

    此外,考虑到性能优化,我们需要注意避免不必要的数组复制和重新分配,尤其是对于大型数组。合理地利用数组空间,避免内存泄漏,可以提高程序的运行效率。 在给定的文件中,`ButtonArrayControl.dll`可能是一个包含...

    flash as3 实现简单视频截图

    在本文中,我们将深入探讨如何使用Flash ActionScript 3(AS3)来实现一个简单的视频截图功能。这个功能允许用户捕获来自摄像头的实时视频帧并将其保存为图像文件。以下是一些关键知识点: 1. **Flash CS5**: Flash...

    AS3常用英语单词大全

    【AS3常用英语单词大全】是针对ActionScript 3.0编程语言的学习资源,包含了AS3中常见的英文词汇及其解释。ActionScript 3.0是一种广泛应用于开发Flash平台应用程序、游戏和富互联网应用的脚本语言。以下是一些重要...

    vb.net 第五章 数组

    Dim jaggedArray(2)() As Integer '声明一个包含3个子数组的不规则数组 jaggedArray(0) = New Integer() {1, 2} jaggedArray(1) = New Integer() {3, 4, 5} jaggedArray(2) = New Integer() {6} ``` 八、数组操作 1...

    数组排序(VB6.0代码编写)给定一个数组,把不是升序的数据去掉,然后重新赋给另一数组

    '复制未排序数组到已排序数组 For i = LBound(arrUnsorted) To UBound(arrUnsorted) arrSorted(i) = arrUnsorted(i) Next i '执行排序 For i = LBound(arrSorted) To UBound(arrSorted) - 1 For j = i + 1 ...

Global site tag (gtag.js) - Google Analytics