对ArrayCollection进行赋值时如果使用“=”赋值,那么=两边的变量将指向同一个内存空间,其中一个改变另外一个跟着改变,类似指针。
var a:ArrayCollection = new ArrayCollection( [ {name:"myName",gender:"male"}, {name:"yourName",gender:"female"} ]); var b:ArrayCollection = a; b.addItem({name:"hisName",gender:"male"}); //a的值会跟着b的改变而改变,a,b始终一样
如果你需要做一个ArrayCollection的复制,而不想让两个变量保持关联,你可以使用深度复制
b:ArrayCollection =new ArrayCollection();
for each(var obj:Objectin a){
b.addItem(obj);
}