FabricJS问题与删除activeobject

时间:2018-09-03 16:42:55

标签: javascript fabricjs

我能够从画布中删除对象,就像这样:

document.addEventListener("keyup", function(event) {
       if (event.key === "Delete") {
           var currentlySelected = _fabricCanvas.getActiveObject();
           if (currentlySelected) {
               _fabricCanvas.remove(currentlySelected);
           }
       }
    });

问题是;我已按两次Delete键。第一次按下它时,拐角选择点消失,然后如果我重新选择该对象并再次按Delete键,则将其删除。

删除事件触发了一个“ selection:cleared”事件,所以我对为什么这样做感到有些困惑。画布上的所有对象都是“矩形”

如果人们可以让我知道要发布哪些位,那么我可以发布更多代码,因为代码现在已经很长了。

1 个答案:

答案 0 :(得分:0)

您的代码很好,较大的应用程序中的其他问题阻止您删除。 在查看代码段iframe之后,请查看此处的代码段,尝试按Backspace键,对象将被删除。

document.addEventListener("keyup", function(event) {
       if (event.key === "Backspace") {
           var currentlySelected = _fabricCanvas.getActiveObject();
           if (currentlySelected) {
               _fabricCanvas.remove(currentlySelected);
           }
       }
    });
    
var _fabricCanvas = new fabric.Canvas('c');
var rect = new fabric.Rect({ width: 100, height: 100 })
_fabricCanvas.add(rect);
_fabricCanvas.setActiveObject(rect);
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.3.6/fabric.min.js"></script>
<canvas width=400 height=400 id="c" ></canvas>