首页 > 解决方案 > 如何在舞台或容器上实现撤消/重新执行操作

问题描述

我正在使用 createjs/easeljs 创建一个 2d 编辑器,我有一个问题如何在编辑器中实现 undo/rendo。我尝试通过迭代所有子元素以在任何操作之前将它们添加到数组或 json 对象中,并在取消时将此变量分配给容器的子元素!这适用于孩子的数量,但不适用于他们在画布上的位置。

var steps = {};

addStep() 
{
   steps[this.step] = {};

    for(var i = 0; i < this.container.children.length; i++)
    {
       steps[this.step][i] = this.container.children[i];
    }

    $('li[data-button="back"]').addClass("li-active").attr({"data-step": this.step});

    this.step++;

    console.log(steps)
}

loadStep(index) 
{
    if(steps[index])
    {
        this.container.children = Object.values(steps[index]);
        this.stage.update();
    }
}

请至少给我一些提示我已经遭受了一个多星期的痛苦

难不成没人知道???

标签: javascriptcreatejseaseljs

解决方案


推荐阅读