gpt4 book ai didi

fabricjs - 在最新版本的 Fabricjs 中,clone() 不适用于路径对象

转载 作者:行者123 更新时间:2023-12-02 06:29:16 26 4
gpt4 key购买 nike

如果使用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();

下面是我收到的错误。

 else {
fabric.util.enlivenObjects(object.paths, function(enlivenedObjects) {
delete object.paths;
callback(new fabric.PathGroup(enlivenedObjects, object));
****Uncaught TypeError: undefined is not a function****
});
}
};

上面的代码适用于所有对象,但代码不适用于路径对象

最佳答案

fabric.Pathfabric.PathGroup 对象自 Fabric.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}));
}

在这里您可以看到它的实际效果: http://jsfiddle.net/Kienz/73Cta/

关于fabricjs - 在最新版本的 Fabricjs 中,clone() 不适用于路径对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18266650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com