Fabric.js组与平移画布坐标

时间:2015-02-20 10:53:17

标签: javascript fabricjs

我有一个最初平移的画布,以便0,0点位于屏幕中间。我正在尝试移动以编程方式创建的组,但由于某种原因,该组相对于可见画布的左上角而不是画布的0,0点移动。在第一次移动之后,平移工作正常并且组在该位置移动,直到我丢弃并再次创建它,然后它再次相对于左上角,而不考虑平底锅。如果我使用选择工具创建组选择,则每次都可以正常工作。

我用这个平移画布:

var offsetX = -canvas.getWidth()/2;
var offsetY = -canvas.getHeight()/2;
canvas.absolutePan(new fabric.Point(offsetX, offsetY));

这是我创建群组的方式:

var group = new fabric.Group();
objects.forEach(function (o) {
    group.addWithUpdate(o);
    canvas.remove(o);
});
canvas.add(group);

然后我试着用它来移动它:

group.set("left", 0);
canvas.renderAll();

然后该组正好位于canvas元素的左边缘。但是,如果我用鼠标选择该组并使用它,它就会出现在它应该的位置 - 在中心:

canvas.getActiveGroup().set("left", 0);
canvas.renderAll();

那么,我该如何让它正常工作?我知道我可以只计算画布转换的偏移量,但我觉得这应该在库本身得到补偿,而且我要么以某种方式使用它错了,要么就是一个bug。

0 个答案:

没有答案