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);
Другие вопросы по тегам