0

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

dojox.gfx.utils.toJson(surface)

从中生成一个json,然后

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

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

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

4

1 回答 1

1

我找到了我的问题的答案。

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

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

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

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

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

on(surface, 'mousedown', HandleMouseDown);
于 2015-08-31T22:13:40.900 回答