gpt4 book ai didi

actionscript-3 - AS3自定义对象到ByteArray,然后到自定义对象

转载 作者:行者123 更新时间:2023-12-04 13:35:10 26 4
gpt4 key购买 nike

读取自定义对象的字节数组时遇到问题。任何帮助表示赞赏

public class CustomObject extends Object {
public function CustomObject() {
public var _x:Number = 100
public var _y:Number = 10
public var _z:Number = 60
}
}

var cObj:CustomObject = new CustomObject()
var bytes:ByteArray = new ByteArray()
bytes.writeObject(cObj)
bytes.compress()

//read
try { bytes.uncompress() } catch (e:Error) { }
var obj:CustomObject = bytes.readObject() as CustomObject

trace(obj) // null why?!
trace(obj._z) // Obviously - TypeError: Error #1009: Cannot access a property or method of a null object reference.

最佳答案

您要做的是使用registerClassAlias方法来注册类型信息和数据。这样,Flash就会知道如何序列化/反序列化您的对象。这是来自Adobe的documentation的一些示例代码:

registerClassAlias("com.example.eg", ExampleClass);
var eg1:ExampleClass = new ExampleClass();
var ba:ByteArray = new ByteArray();
ba.writeObject(eg1);
ba.position = 0;
var eg2:* = ba.readObject();
trace(eg2 is ExampleClass); // true

应当注意,必须序列化的所有类型都必须注册才能保存类型信息。因此,如果您的类型引用了其他类型,则也必须对其进行注册。

关于actionscript-3 - AS3自定义对象到ByteArray,然后到自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3741099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com