1
A
回答
1
将数据网址保存到数组中:http://jsfiddle.net/eGjak/54/。
var cv = $('#cv').get(0);
var ctx = cv.getContext('2d');
var history = [];
$("#b1").click(function() {
history.push(cv.toDataURL());
ctx.beginPath();
ctx.arc(Math.random() * 200 + 100,
Math.random() * 200 + 100,
Math.random() * 200,
0,
2 * Math.PI);
ctx.stroke();
});
$("#b2").click(function() {
ctx.beginPath();
var img = new Image;
img.onload = function() {
ctx.clearRect(0, 0, 400, 400);
ctx.drawImage(img, 0, 0);
};
img.src = history.pop();
});
0
你可能会尝试做的是创建一个事件数组,并在每次onclick(或您最感兴趣的事件)发生时填充它。这样,您就拥有了所有用户输入的历史记录。
您也可以不仅仅存储事件,而是存储正在使用的工具,以简化之前状态下的重绘。
这就是你想要的吗?
+0
虽然这是我的第一个念头为好,这可能会伤害撤销过程(强迫你一遍重做整个用户操作) – sternr
相关问题
- 1. 更改历史记录表
- 2. HTML5 - 历史记录API
- 3. HTML5历史记录APi
- 4. 更改Javascript的历史记录
- 5. Android 4.0和HTML5历史记录API
- 6. 在EF代码中记录用户更改的历史记录
- 7. GWT历史记录:历史记号
- 8. 更新HTML5历史记录中的以前状态对象
- 9. 更改git提交历史记录,但保留更改
- 10. LDAP登录历史记录
- 11. Sharepoint文件修改历史记录
- 12. 使用JavaScript更改网址并修改历史记录?
- 13. Django AttributeError修改字段没有跟踪更改历史记录
- 14. 带历史记录的EditText
- 15. Nhibernate的历史记录
- 16. SQL Server 2005表变更历史记录
- 17. HTML5 API历史
- 18. TFS 2010个别代码部分的更改历史记录
- 19. 如何存储数据的更改历史记录?
- 20. .NET是否有时区更改的历史记录?
- 21. 在通知表中存储数据更改的历史记录
- 22. 如何找出一行代码的更改历史记录
- 23. jquery关于值更改处理程序的历史记录?
- 24. 更改vimeo嵌入的iframe src添加到历史记录API
- 25. Git本地更改历史记录在硬盘上的位置
- 26. 架构更改历史记录 - 对象的ALTER是什么?
- 27. T-SQL确定历史记录表中的状态更改
- 28. Subversion中特定代码行更改的历史记录
- 29. 查看完整的smartGit更改历史记录
- 30. 如何更改git历史记录中的文件路径?
你认为,那不会有与RAM问题?如果用户将执行很多操作.. – Mark
@Mark:这是正确的,具体取决于您的画布大小。但是,每个动作都会占用相同的内存量,因为只保存像素(绘图的复杂程度无关紧要,只是大小很重要)。我的小提琴不会阻塞太多的记忆。 – pimvdb
谢谢你,非常感谢你 – Mark