【发布时间】:2012-08-03 12:18:36
【问题描述】:
我实际上正在开发一个 html5 画布项目,该项目使用 fabric.js 框架进行画布交互。现在我正在努力删除多个对象。下面的代码似乎并不跟踪选中的对象,而是跟踪画布上的所有对象。
var deleteSelectedObject = document.getElementById('delete-item');
deleteSelectedObject.onclick = function(){
var curSelectedObjects = new Array();
curSelectedObjects = canvas.getObjects(canvas.getActiveGroup);
canvas.discardActiveGroup();
for (var i = 0; i < curSelectedObjects.length; i++){
canvas.setActiveObject(curSelectedObjects[i]);
canvas.remove(canvas.getActiveObject());
}
};
别误会我的失败。
【问题讨论】:
-
附注:不要使用
var curSelectedObjects = new Array();new Array,只需使用[]。尤其是在这种情况下,您处理的不是数组,而是节点列表(!== 相同的东西) -
您是否要删除选定的一组对象?
-
@kangax 是的,这正是我想要做的。有什么建议吗?
-
canvas.getActiveGroup().forEachObject(function(o){ canvas.remove(o) }); canvas.discardActiveGroup().renderAll();
标签: javascript html canvas fabricjs