小编Ben*_*ick的帖子

克隆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); 
}
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)

它工作,但是对象再次相同,如果我只使用初始化,我最终得到一个现在已设置属性的对象.

html5-canvas fabricjs

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

fabricjs ×1

html5-canvas ×1