gpt4 book ai didi

javascript - Fabric.js 取消组合项目更改其位置

转载 作者:行者123 更新时间:2023-12-03 11:33:31 25 4
gpt4 key购买 nike

您好,我正在尝试使用 Fabric.js 取消组合项目,但每次我尝试取消组合它们时,它们在 Canvas 上的位置都会发生变化。

我尝试了很多技术,甚至尝试手动重新计算位置,但我总是失败。

这篇文章列出了最好的技术

https://gist.github.com/msievers/6069778

由于 _restoreObjectsState 是由 group.destroy() 调用的,所以我使用了它(两者都给了我相同的结果)

我有一个 jsfiddle,它显示了奇怪的行为。

http://jsfiddle.net/vq3Lj0th/

var canvas =  new fabric.Canvas('viewport');

var text1 = new fabric.IText('Text1', {
left: 0,
top: 0
});
var text2 = new fabric.IText('Text2', {
left: 0,
top: 125
});
var group = new fabric.Group([text1, text2], {
left: 150,
top: 100
});
canvas.add(group);

document.getElementById('ungroup').addEventListener('click' ,function ungroup() {

var destroyedGroup = group.destroy();
var items = destroyedGroup.getObjects();

items.forEach(function (item) {
canvas.add(item);
});
canvas.remove(group);
});

作为引用,我想做的是取消对项目的分组并将它们发送到另一个 Canvas 以模拟分组编辑模式。我快到了,但我不知道如何在不失去位置的情况下取消组合。

感谢您的帮助。

最佳答案

我找到了一种让它发挥作用的方法:

fabric 的前沿版本解决了这个问题:

https://github.com/kangax/fabric.js/issues/1798

关于javascript - Fabric.js 取消组合项目更改其位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26633312/

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