2

我是 Fabricjs 的新手,但一直在阅读文档和教程。

这是一个非常强大的库。我看到了可以锁定对象的地方,但我想做的是留在我选择的对象上,而不是通过单击其边界之外来释放它。我正在构建一个移动和触摸屏版本,并且使用您的手指,您倾向于在对象边界之外单击。

基本上:选择一个对象,能够编辑,从调色板应用属​​性,并有一个释放按钮,因此在用户完成编辑之前不会释放它。

您可以使用以下方法锁定单个元素: canvas.item(0).selectable = false;

但是,如果您在其边界之外单击,您仍然会遇到您尝试编辑的对象丢失选择的问题。

非常感谢任何帮助!

4

1 回答 1

1

如果我理解正确,您只需要在取消选择对象时再次选择它,以防止取消选择对象。这可以通过 Fabric 中的事件来完成:

var selectedObject;

canvas.on('object:selected', function(options) {
  selectedObject = options.target;
});

canvas.on('selection:cleared', function() {
  canvas.setActiveObject(selectedObject);
});

我做了一个简单的例子(jsfiddle)来证明这一点。

于 2013-09-15T18:49:17.023 回答