Я создаю интерактивную среду на основе 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, и параллельную, созданную моим собственным кодом, но опять же неуклюжий. У кого-нибудь есть лучшие идеи?
Вы верны! Это прекрасно, спасибо. – Chris
Я мог бы быть глупым, но, похоже, не существует 'getAttr (key)' метода 'Node', просто' getAttrs() 'в стиле дробовика. Странный. – Chris
'getAttrs(). KeyName' будет делать только штраф – Variant