我使用一个简单的函数克隆Fabric.js中画布上的选定对象.
function duplicateObj() {
var obj = canvas.getActiveObject();
var clone = fabric.util.object.clone(obj);
clone.set({left: 100,top: 100});
canvas.add(clone);
}
Run Code Online (Sandbox Code Playgroud)
这非常好.现在,如果我使用该对象并且不再需要克隆并且我选择并删除它,则删除对象,克隆和原始对象.删除功能是:
function deleteObj() {
var obj = canvas.getActiveObject();
canvas.fxRemove(obj);
}
Run Code Online (Sandbox Code Playgroud)
对象是一样的.是否有方法克隆对象并使克隆独立于原始对象?我试过这个:
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);
}
Run Code Online (Sandbox Code Playgroud)
它工作,但是对象再次相同,如果我只使用初始化,我最终得到一个现在已设置属性的对象.