簡體   English   中英

如何在Fabric JS中將免費圖形分為多個部分

[英]How to break a free drawing into segments in Fabric JS

我想在Fabric JS中使用撤消選項。 但是,我不想一次刪除一條完整的自由繪制線,而是要逐條刪除它。 是否有捷徑可尋?

由於繪制時的路徑是一個接一個地添加的,因此您可以按以下方式實現它(讓我們假設appapp根對象):

1)具有路徑數組,畫布JSON表示形式並標記已初始化繪圖

app.isDrawingMode = false; //should be toggled when you're adding other elements
app.__state = [];

2)訂閱每個添加的路徑(如果正在繪制)

canvas.on('object:added', function(e) {
  if (app.isDrawingMode && e.target && e.target.path && e.target.path.length) {
    app.saveToHistory();
  }
});

app.saveToHistory = function() {
  var myjson = this.__canvas.toObject();
  this.__state.push(JSON.stringify(myjson));
}

3)撤消功能

app.undo = function() {
  if (app.__state.length > 1) {
    canvas.clear();
    var stateNumber = app.__state.length - 2;
    canvas.loadFromJSON(JSON.parse(this.__state[stateNumber]),
    canvas.renderAll.bind(canvas));
    app.__state.splice(-1, 1);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM