我正在构建一个基于 kinetic.js 的交互式环境。我希望能够保存和加载画布的状态以及元数据。
我已经知道我可以stage.toJSON()
用来序列化/保存和Kinetic.Node.create(stageJson, 'container')
加载。但是我想将任意数据添加到该序列化中,以跟踪我的环境将定义/使用的其他属性。
标准 kinetic.js 序列化示例:
{
"attrs": {
"width": 578,
"height": 200,
"x": 0,
"y": 0
},
"nodeType":"Shape",
"shapeType":"Rect"
}
我希望能够保存/加载的示例:
{
"attrs": {
"width": 578,
"height": 200,
"x": 0,
"y": 0
},
"nodeType":"Shape",
"shapeType":"Rect",
"metaData": {"foo": "bar"}
}
这里最好的方法是什么?我可以在传递元数据之前破解/包装序列化和加载函数以添加/拉出元数据,但这似乎笨重且难以实现,特别是如果有很多嵌套层和形状需要解析。我可以保存两个完全独立的序列化,一个由 kinetic.js 生成,另一个由我自己的代码生成,但同样很笨重。有人有更好的想法吗?