Rückgängig Wiederholen für Fabric.js

Ich versuche, meiner Fabric.js-Zeichenfläche eine Undo / Redo-Funktion hinzuzufügen. Meine Idee ist es, einen Zähler zu haben, der Canvas-Änderungen zählt (im Moment zählt er das Hinzufügen von Objekten). Ich habe ein Zustands-Array, das die gesamte Zeichenfläche als JSON auf mein Array überträgt.

Dann möchte ich einfach die Zustände mit abrufen

canvas.loadFromJSON(state[state.length - 1 + ctr],

Wenn der Benutzer auf "Rückgängig" klickt, wird die Strg-Zahl um eins verringert und der Status aus dem Array geladen. Wenn der Benutzer auf "Wiederholen" klickt, wird die Strg-Zahl um eins erhöht und der Status aus dem Array geladen.

Wenn ich das mit einfachen Zahlen erlebe, funktioniert alles gut. Mit dem echten Stoff Canvas bekomme ich ein paar Probleme -> es funktioniert nicht wirklich. Ich denke, das hängt von meinem Event-Handler ab

canvas.on({
   'object:added': countmods
});

jsfiddle ist hier:

Hier ist nur das Beispiel mit den Arbeitsnummern (Ergebnisse siehe Konsole):jsFiddle

Antworten auf die Frage(5)

Ihre Antwort auf die Frage