Actionscript 3 使用write byteArray进行深度克隆无效

Actionscript 3 使用write byteArray进行深度克隆无效,actionscript-3,Actionscript 3,我正在为我的一个类编写一个克隆函数 var buffer:ByteArray = new ByteArray(); buffer.writeObject(this); buffer.position = 0; var gameblock:* = buffer.readObject(); 现在是读取对象的最后一行。我把这三个错误放在一起: TypeError:Error#1009:无法访问null的属性或方法 对象引用。TypeEr

我正在为我的一个类编写一个克隆函数

        var buffer:ByteArray = new ByteArray();
        buffer.writeObject(this);
        buffer.position = 0;
        var gameblock:* = buffer.readObject();
现在是读取对象的最后一行。我把这三个错误放在一起:

TypeError:Error#1009:无法访问null的属性或方法 对象引用。TypeError:错误#1034:类型强制失败:无法 转换Object@c60efe9为.BlockData建模。TypeError:错误#1034: 类型强制失败:无法转换Object@c5141c1到 flash.geom.Matrix

类“this”包含一个用户定义的类BlockData和一个点。错误就在那上面。你认为我应该如何克隆这个类

我确实会再次覆盖块数据和点,以确保它们正确返回

使用
registerClassAlias
方法检查答案以获得更好的
copy
方法,但请记住,您只能在简单情况下使用此方法,例如复制数据对象,如TextFormat或Value对象,您可以复制DisplayObject及其后续对象。

对于您的类来说,“更好”是通过数组序列化来实现的,正如fsbmain所说,DisplayObject不能被复制