Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 使用messagepack和as3序列化对象_Actionscript 3_Serialization_Msgpack_Messagepack - Fatal编程技术网

Actionscript 3 使用messagepack和as3序列化对象

Actionscript 3 使用messagepack和as3序列化对象,actionscript-3,serialization,msgpack,messagepack,Actionscript 3,Serialization,Msgpack,Messagepack,这是一个简单的问题,但找不到任何文档 我有一个简单的课程: public class User { public var name:String; public var age:int; } 我想使用以下方法对其进行序列化: var user:User = new User(); user.age = 15; user.name = "mike"; //now serialize var bytes:ByteArray = MessagePack.encoder.write(v

这是一个简单的问题,但找不到任何文档

我有一个简单的课程:

public class User
{
    public var name:String;
    public var age:int;
}
我想使用以下方法对其进行序列化:

var user:User = new User();
user.age = 15;
user.name = "mike";
//now serialize
var bytes:ByteArray = MessagePack.encoder.write(vo);
但我有一个错误:

Error: MessagePack handler for type base not found

如何让MessagePack知道用户类是什么,如何序列化它?

MessagePack看起来不像大多数序列化程序那样能够序列化类

我建议您在用户类中添加
toObject
方法:

public function toObject():Object
{
    return {age:this.age, name:this.name}:
}
然后您可以序列化您的用户:

var bytes:ByteArray = MessagePack.encoder.write(user.toObject());
您还可以添加一个静态
fromObject
方法,该方法接受一个对象并返回一个用该对象初始化的新用户

static public function fromObject(o:Object):User
{
    var u = new User();
    u.age = o.age;
    u.name = o.name;

    return u;
}

您使用哪个版本的MessagePack?我在哪里可以找到它?我正在使用,它是最新版本,我想v0.4.0感谢您的回复,我喜欢这个解决方案