我能够从画布中删除对象,就像这样:
document.addEventListener("keyup", function(event) {
if (event.key === "Delete") {
var currentlySelected = _fabricCanvas.getActiveObject();
if (currentlySelected) {
_fabricCanvas.remove(currentlySelected);
}
}
});
问题是;我已按两次Delete键。第一次按下它时,拐角选择点消失,然后如果我重新选择该对象并再次按Delete键,则将其删除。
删除事件触发了一个“ selection:cleared”事件,所以我对为什么这样做感到有些困惑。画布上的所有对象都是“矩形”
如果人们可以让我知道要发布哪些位,那么我可以发布更多代码,因为代码现在已经很长了。
答案 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>