加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex中ArrayCollection的复制(克隆)

发布时间:2020-12-15 04:13:30 所属栏目:百科 来源:网络整理
导读:在Flex的开发过程中,常常会遇到复制ArrayCollection的情况。以前只是从网上找个方法拿来就用,也没有具体的搞清楚所以然来。今天有时间,研究了一下,总结如下: ??????? Flex中的复制同java一样,也分为深复制和浅复制。 ??????? 下面总结一下ArrayCollect

在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()); ???????? }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读