如果使用clone()方法克隆fabric.Path对象,则不会复制路径对象.我在这里看到了这个问题 https://github.com/kangax/fabric.js/issues/330但是Fabric js的版本是不同的.有人可以帮我这个.
var obj = canvas.getActiveObject();
if (!obj) return;
var clone = obj.clone();
clone.set({
top: clone.get('top') + 150
});
canvas.add(clone);
canvas.renderAll();
Run Code Online (Sandbox Code Playgroud)
以下是我得到的错误.
else {
fabric.util.enlivenObjects(object.paths, function(enlivenedObjects) {
delete object.paths;
callback(new fabric.PathGroup(enlivenedObjects, object));
****Uncaught TypeError: undefined is not a function****
});
}
};
Run Code Online (Sandbox Code Playgroud)
上面的代码适用于所有对象,但代码不适用于Path Object
fabric.Pathfabric.PathGroup自object.js版本1.2.2(https://github.com/kangax/fabric.js/commit/c8cab03aace5510554cd02fa143248ab7497f6c2)以来,对象是异步的.
因此,您必须区分异步和同步对象.
var obj = canvas.getActiveObject();
if (!obj) return;
if (fabric.util.getKlass(obj.type).async) {
obj.clone(function (clone) {
clone.set({left: 200, top: 100});
canvas.add(clone);
});
}
else {
canvas.add(obj.clone().set({left: 100, top: 100}));
}
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到它在行动:http: //jsfiddle.net/Kienz/73Cta/
| 归档时间: |
|
| 查看次数: |
1850 次 |
| 最近记录: |