平移后,我无法获取画布的边框进行更新。我尝试requestRenderAll
并重置每个对象的坐标,但是边界框保持在同一位置。
我应该调用其他函数吗?
我尝试过的事情:
if (!pausePanning && e.self.x && e.self.y && e.e.type) {
currentX = e.self.x;
currentY = e.self.y;
xChange = currentX - panX;
yChange = currentY - panY;
if( (Math.abs(xChange) <= 100) &&
(Math.abs(yChange) <= 100) ) {
var delta = new fabric.Point(xChange, yChange);
canvas.relativePan(delta);
}
panX = e.self.x;
panY = e.self.y;
// attempting to redraw bounding
canvas.getObjects().forEach(function(o) {
o.setCoords();
});
// this also doesn't work
canvas.requestRenderAll();
}
}
答案 0 :(得分:0)
以filing a ticket结尾并听到了;问题是平移或缩放后选择项目时需要指定更新的画布。
将画布命名为canvas
变量的示例:
var sel = new fabric.ActiveSelection(selection, { canvas: canvas });
canvas.setActiveObject(sel).requestRenderAll();
还有一个jsfiddle,其中显示了已更新选择的缩放/平移。