将动态对象转换为StringMap

时间:2017-06-09 16:33:35

标签: haxe openfl

我正在使用OpenFl

将StringMap保存到SharedObject

保存到SharedObject

SO.data.users_arr = new StringMap<Dynamic>();
SO.data.users_arr.set("user1",{varOne:1,varTwo:2});

从SharedObject检索

var users_arr : StringMap<Dynamic> = cast(SO.data.users_arr, StringMap<Dynamic>);

检索给我一个错误:

[Fault] exception, information=TypeError: Error #1034: Type Coercion failed: cannot convert Object@b868371 to haxe.ds.StringMap.
lib/sim/model/SOControl.hx:37: characters 20-21 : Unexpected .

问题是:如何从动态对象重新转换以前保存的StringMap?

谢谢!

1 个答案:

答案 0 :(得分:3)

最简单的解决方案可能是使用Serialization mechanism built into Haxe。下面是一些伪代码:

<强>存储

SO.data.users_arr = Serializer.run(users_arr);

<强>装载

var users_arr:StringMap<Dynamic> = Unserializer.run(SO.data.users_arr);