【发布时间】:2014-03-07 11:27:44
【问题描述】:
我正在使用一个简单的函数在 Fabric.js 的画布上克隆一个选定的对象。
function duplicateObj() {
var obj = canvas.getActiveObject();
var clone = fabric.util.object.clone(obj);
clone.set({left: 100,top: 100});
canvas.add(clone);
}
这绝对没问题。现在,如果我使用该对象并且不再需要克隆并且我选择并删除它,那么对象、克隆和原始对象都将被删除。删除函数是:
function deleteObj() {
var obj = canvas.getActiveObject();
canvas.fxRemove(obj);
}
对象是相同的。有没有办法克隆对象并使克隆独立于原始对象?我试过这个:
function duplicateObj() {
var obj = canvas.getActiveObject();
var clone = fabric.util.object.clone(obj);
clone.initialize();
$.extend(clone, obj);
fabric.util.object.extend(clone, obj);
clone.set({left: 100,top: 100});
canvas.add(clone);
}
它可以工作,但是对象再次相同,如果我只使用初始化,我最终会得到一个现在已设置属性的对象。
【问题讨论】:
-
您应该在对象本身上使用
clone方法。每个对象都有它,它会照顾一切 -
谢谢。我克隆了一个组。这就是问题所在。克隆单个对象可以正常工作。
-
嗨@Benick!您找到克隆组的解决方案了吗?
标签: html5-canvas fabricjs