byteArray的深复制会造成类型丢失
byteArray可通过writeObject和readObject实现数组深复制,但写进去的数组元素再读出来,某些元素就丢失类型,目前发现Point是这样
privatefunction test():void {
var pt:Point= new Point(1, 1);
vararr:Array = [[0, 0], pt];
varbyteArr:ByteArray = new ByteArray();
byteArr.writeObject(arr);
byteArr.position = 0;
vararr1:Array = byteArr.readObject() as Array;
trace(arr[0], arr[1]);//0,0 (x=1, y=1)
trace(arr1[0], arr1[1])//0,0 [object Object]
trace(arr1[1] as Point);//null//无法转换回Point类型
trace(arr1[1].x,arr1[1].y);//1 1//好在还可以通过Object的键访问x,y属性
}
要么就是了解还不够,自己的代码问题...
要么就是了解还不够,自己的代码问题...
posted on 2012-08-16 16:00 weiweishuo 阅读(112) 评论(0) 编辑 收藏 举报