我需要使用fabricjs在undo函数上创建对象组

时间:2015-11-20 11:35:58

标签: javascript fabricjs

我在组中有两个画布对象(Rectungle和Triangle)。 然后我需要删除它们,然后将其中一个对象返回到过去的位置。

这是两个对象和组

    var rect1 = new fabric.Rect(
{
id: 1, left: 10, top: 10, width: 100, height: 50, angle: 45, fill: 'red'
});
    var tria1 = new fabric.Triangle({
id: 2, left: 200, top: 200, width: 100, height: 50, angle: 20, fill: 'yellow'
});

var objsGroup = new fabric.Group([rect1, tria1], {left: 100, top: 100});

这里整个小提琴。我通过提醒https://jsfiddle.net/5js60oec/

分隔所有步骤

更新

有下一个问题。让我们假设现有的对象组在删除之前进行一些移动和旋转。然后我必须在旋转和移动之前将其恢复到点。多数民众赞成,我认为是主要问题。

行动

objsGroup.top = 200;
objsGroup.left = 200;

canvas.renderAll();
alert('4');

history.push(canvas.getActiveGroup());

objsGroup.setAngle(45);

canvas.renderAll();

这里有完整的小提琴手:https://jsfiddle.net/nppaLetn/1/

1 个答案:

答案 0 :(得分:0)

例如,我正在删除画布中最后添加的路径,如下所示

var lastItemIndex = (fabricCanvas.getObjects().length - 1);
var item = fabricCanvas.item(lastItemIndex);

if(item.get('type') === 'path') {
  fabricCanvas.remove(item);
  fabricCanvas.renderAll();
}

这可以帮助你完成你的probs!我想是的。