·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]AS3克隆数组Array类用法示例

时间:2012-09-25 11:16CuPlayer
Array 类不具有复制数组的内置方法。可以通过调用不带参数的 concat() 或 slice() 方法来创建数组的浅副本。在浅副本中,如果原始数组具有对象元素,则仅复制指向对象的引用而非对象本身

  Array 类不具有复制数组的内置方法。可以通过调用不带参数的 concat() 或 slice() 方法来创建数组的“浅副本”。在浅副本中,如果原始数组具有对象元素,则仅复制指向对象的引用而非对象本身。与原始数组一样,副本也指向相同的对象。对对象所做的任何更改都会在两个数组中反映出来。在“深副本”中,将复制原始数组中的所有对象,从而使新数组和原始数组指向不同的对象。深度复制需要多行代码,通常需要创建函数。可以将此类函数作为全局实用程序函数或Array 子类的方法来进行创建。

  以下示例定义一个名为 clone() 的函数以执行深度复制。其算法采用了一般的 Java 编程技巧。此函数创建深副本的方法是:将数组序列化为 ByteArray 类的实例,然后将此数组读回到新数组中。此函数接受对象,因此既可以将此函数用于索引数组,又可以将其用于关联数组(极酷播放器提示:如以下代码所示):

  1. import flash.utils.ByteArray;  
  2. function clone(source:Object):*  
  3. {  
  4. var myBA:ByteArray = new ByteArray();  
  5. myBA.writeObject(source);  
  6. myBA.position = 0;  
  7. return(myBA.readObject());  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器