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编辑  收藏  举报

导航