Flex中ArrayCollection的复制(克隆)
在Flex的开发过程中,常常会遇到复制ArrayCollection的情况。以前只是从网上找个方法拿来就用,也没有具体的搞清楚所以然来。今天有时间,研究了一下,总结如下: ??????? Flex中的复制同java一样,也分为深复制和浅复制。 ??????? 下面总结一下ArrayCollection的浅复制,共有4种方法: ??????? 1、var newArray:ListCollectionView=new ListCollectionView(ListCollectionView(oldArray).list); ??????? 2、var newArray:ArrayCollection=new ArrayCollection(oldArray.source); ??????? 3、var newArray:ArrayCollection=new ArrayCollection(oldArray.source.slice()); ??????? 4、var newArray:ArrayCollection=new ArrayCollection(oldArray.toArray()); ??????? 以上方法中,第一种方法由于不是创建的独立的ArrayCollection对象,所以不推荐使用。第二、三、四种方法相似,可以参考使用。 ??????? 有的时候,我们也会用到深复制,方法如下: ??????? var newArray:ArrayCollection=ArrayCollection(this.clone(oldArray)); ??????? this.clone()方法定义如下: ?????????function clone(source:Object):* ???????? { ??????????????? var myBA:ByteArray = new ByteArray(); ??????????????? myBA.writeObject(source); ??????????????? myBA.position = 0; ??????????????? return(myBA.readObject()); ???????? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |