Pau*_*ing 25 javascript canvas fabricjs
例如,我有帆布,多个对象甲,*乙*和Ç.其中三个对象被选为激活状态.通过使用Fabric.js,是否可以仅丢弃/停用其中一个对象?
例如,选择了三个对象,然后当单击画布外的按钮时,将丢弃/停用对象B.
我查看了FabricJS官方网站上的doc文件,我只找到了canvas.deactivateAll(),canvas.discardActiveObject().这些功能只能在不是特定活动对象的情况下停用所有活动对象.
有人可以给我一个指导吗?谢谢!
Sha*_*agh 50
我可能会迟到回答这个问题,但最近fabricjs (1.4.3)您可以使用以下内容取消选择画布上的所有选定对象.
canvas.deactivateAll().renderAll();
Run Code Online (Sandbox Code Playgroud)
我在创建该画布的图像之前使用它.希望它可以帮助某人.
Shy*_*iya 14
要丢弃所有活动组,您可以在函数下面使用.Discards当前活动组和激活事件如果由于鼠标事件而由Fabric调用该函数,则该事件将作为parmater传递并发送到fire函数以进行自定义事件.当用作方法时,e param没有任何应用.
canvas.discardActiveGroup();
Run Code Online (Sandbox Code Playgroud)
要丢弃sigle对象,您可以像这样使用.丢弃当前活动的对象和火灾事件.如果由于鼠标事件而由fabric调用该函数,则该事件将作为parmater传递并发送到fire函数以获取自定义事件.当用作方法时,e param没有任何应用.
canvas.discardActiveObject();
Run Code Online (Sandbox Code Playgroud)
在最后,最后渲染顶部画布和辅助容器画布.
canvas.renderAll();
Run Code Online (Sandbox Code Playgroud)
小智 13
假设您有三个对象objectA,ObjectB和ObjectC以及对象被选中.现在,如果要取消选择任何对象(例如ObjectB).在这种情况下,您可以尝试以下代码.
var activeGroup = canvas.getActiveGroup();
activeGroup.removeWithUpdate(ObjectB);
canvas.renderAll();
Run Code Online (Sandbox Code Playgroud)
如果您只有一个节点处于活动状态,则可以执行此操作.
canvas.discardActiveObject();
canvas.renderAll();
Run Code Online (Sandbox Code Playgroud)
我刚刚找到了一种方法:
当多个对象被激活时,它们实际上形成了一个组。那么实际上只需要使用fabric.group的一个名为“removeWithUpdate”的方法就可以了。
例子:
var activeGroup = canvas.getActiveGroup();
activeGroup.removeWithUpdate(theObject);
canvas.renderAll();
Run Code Online (Sandbox Code Playgroud)