[英]Fabric.js: how to deselect one or multiple objects on canvas?
例如,我在画布上有多个对象A ,* B * 和C 。 其中三个对象被选中为已激活。 通过使用 Fabric.js,是否可以仅丢弃/停用其中一个对象?
例如,选择三个对象,然后单击画布外的按钮时,对象 B 将被丢弃/停用。
我查看了 FabricJS 官网的 doc 文件,只找到了canvas.deactivateAll() 、 canvas.discardActiveObject() 。 这些功能只能停用所有活动对象,而不是特定活动对象。
有人可以给我一个指导吗? 谢谢!
我可能会迟到回答这个问题,但在fabricjs (1.4.3)
您可以使用以下命令取消选择画布上的所有选定对象。
canvas.deactivateAll().renderAll();
我在创建该画布的图像之前使用它。 希望它可以帮助某人。
对于fabricjs 4.0,您可以使用:
canvas.discardActiveObject().renderAll();
假设您有三个对象 objectA、ObjectB 和 ObjectC,并且选择了对象。 现在,如果您想取消选择任何对象(例如 ObjectB)。 在这种情况下,您可以尝试以下代码。
var activeGroup = canvas.getActiveGroup();
activeGroup.removeWithUpdate(ObjectB);
canvas.renderAll();
如果您只有一个节点处于活动状态,那么您可以这样做。
canvas.discardActiveObject();
canvas.renderAll();
要丢弃所有活动组,您可以使用下面的函数。丢弃当前活动的组和触发事件. 当用作方法时,e 参数没有任何应用。
canvas.discardActiveGroup();
要丢弃单个对象,您可以像这样使用。 丢弃当前活动的对象并触发事件。 如果该函数因鼠标事件而被结构调用,则该事件将作为参数传递并发送到自定义事件的 fire 函数。 当用作方法时,e 参数没有任何应用。
canvas.discardActiveObject();
最后最终像这样渲染顶部画布和辅助容器画布。
canvas.renderAll();
关于更新,只有
canvas.discardActiveObject()
我刚刚找到了一种方法:
当多个对象被激活时,它们实际上形成了一个组。 那么实际上只需要使用一个名为“removeWithUpdate”的fabric.group方法就可以了。
示例:
var activeGroup = canvas.getActiveGroup();
activeGroup.removeWithUpdate(theObject);
canvas.renderAll();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.