javascript - 如何在舞台或容器上实现撤消/重新执行操作
问题描述
我正在使用 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();
}
}
请至少给我一些提示我已经遭受了一个多星期的痛苦
难不成没人知道???
解决方案
推荐阅读
- php - 将密钥文件添加到 PHP cURL 身份验证
- python - 混合比较两个数据框中的多个列并使用 python 添加一个新列 | 熊猫
- css - 使用带有 withStyles 和材质 ui 的通用类
- java - Apache Storm Kafka Spout 延迟问题
- c - 从C中的地址访问值
- qt - QML中的GridLayout如何在单元格中约束矩形
- google-maps - 谷歌通过一个 API 调用反向地理编码多个坐标?
- python - SKLearn KMeans 收敛警告
- text - Libgdx Android 中的 3D 浮动文本
- scala - 乔达日期时间。如何将时区设置为解析的 DateTime?