dojox gfx在从json获取sgv后使节点可移动

时间:2015-08-31 21:46:45

标签: javascript json svg dojo dojox.gfx

我的表面有一些形状。我用

dojox.gfx.utils.toJson(surface)

从中生成json,然后

dojox.gfx.utils.fromJson(surface, json)

获取数据并将其附加到表面。 当我创建一个可移动节点时会出现问题。将其保存到json然后将其附加到曲面后,节点不再可移动。我发现无法让节点再次移动。有没有办法做到这一点? 我希望能够在我的页面中保存和加载svg数据,并在加载后移动元素。在我偶然发现这个问题之前,使用dojo似乎很容易。如果我不能轻松做到这一点,我可以使用更好的图书馆来实现我的目标吗?

编辑:这是实际代码:http://pastebin.com/2qLCTw8B

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案。

首先,当你需要一个dojo模块时,最好把它分配给一个我不知道的变量。这样,在分配on模块时,您可以使用on函数,用于在代码中的任何位置添加事件侦听器。从那里,当您单击它时,很容易创建一个可移动节点。

似乎这是一个无用的操作,因为你可以迭代表面 - children数组,并使每个节点都可移动。

以下是改进的代码:http://pastebin.com/wAvSnZpN

如果您决定使用事件,则需要使用代码:

function HandleMouseDown(e) {
    var foo = new dojox.gfx.Moveable(e.gfxTarget);
}

on(surface, 'mousedown', HandleMouseDown);