dojox gfx делает узел подвижным после получения sgv от json
У меня есть поверхность с некоторыми формами. я использую
dojox.gfx.utils.toJson(surface)
генерировать JSON из него, а затем
dojox.gfx.utils.fromJson(surface, json)
чтобы получить данные и добавить его на поверхность. Проблема возникает, когда я создаю подвижный узел. После сохранения его в json, а затем добавления его на поверхность, узел больше не может быть перемещен. Я не нашел способа сделать узел снова подвижным. Есть ли способ сделать это? Я хочу иметь возможность сохранять и загружать данные SVG на моей странице, а после загрузки перемещать элементы. Использование додзе казалось достаточно легким, прежде чем я наткнулся на эту проблему. Если я не могу сделать это легко, есть ли лучшая библиотека, которую я могу использовать, чтобы достичь своей цели?
Изменить: вот фактический код: http://pastebin.com/2qLCTw8B
1 ответ
Я нашел ответ на мою проблему.
Прежде всего, когда вам требуется модуль dojo, хорошо назначить его переменной, которую я не знал. Таким образом, при назначении модуля on вы можете использовать функцию on, используемую для добавления прослушивателя событий, в любом месте кода. Оттуда легко создать подвижный узел, когда вы нажимаете на него.
Казалось, однако, что это бесполезная операция, так как вы можете просто выполнить итерацию по массиву surface - children и сделать каждый узел подвижным.
Вот улучшенный код: http://pastebin.com/wAvSnZpN
Код нужен, если вы все равно решили использовать события:
function HandleMouseDown(e) {
var foo = new dojox.gfx.Moveable(e.gfxTarget);
}
on(surface, 'mousedown', HandleMouseDown);