Клонирование объектов в Fabric.js
Я клонирую выбранный объект на холсте в 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);
}
Это работает, однако объекты снова остаются прежними, и если я использую только инициализацию, я получаю объект, у которого теперь установлены свойства.