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. 獲取gitHub更改歷史記錄
- 6. MAPI Outlook歷史記錄/更改日誌
- 7. Ajax可用_escaped_fragment =與歷史記錄HTML5
- 8. Android 4.0和HTML5歷史記錄API
- 9. 在EF代碼中記錄用戶更改的歷史記錄
- 10. GWT歷史記錄:歷史記號
- 11. 更新HTML5歷史記錄中的以前狀態對象
- 12. 更改git提交歷史記錄,但保留更改
- 13. History.js:我只想更改網址,無需管理歷史記錄
- 14. LDAP登錄歷史記錄
- 15. 貝寶Sandbox歷史記錄重定向到REAL歷史記錄
- 16. Sharepoint文件修改歷史記錄
- 17. 使用JavaScript更改網址並修改歷史記錄?
- 18. Django AttributeError修改字段沒有跟蹤更改歷史記錄
- 19. Nhibernate的歷史記錄
- 20. 帶歷史記錄的EditText
- 21. SQL Server 2005表變更歷史記錄
- 22. HTML5 API歷史
- 23. 更改git歷史記錄中所有提交的時區
- 24. Git如何查看功能的更改歷史記錄/刪除?
- 25. .NET是否有時區更改的歷史記錄?
- 26. 在svn中生成文件更改的歷史記錄
- 27. Subversion中特定代碼行更改的歷史記錄
- 28. 保持小部件更改的歷史記錄?
- 29. Git本地更改歷史記錄在硬盤上的位置
- 30. 如何存儲數據的更改歷史記錄?
你認爲,那不會有與RAM問題?如果用戶將執行很多操作.. – Mark
@Mark:這是正確的,具體取決於您的畫布大小。但是,每個動作都會佔用相同的內存量,因爲只保存像素(繪圖的複雜程度無關緊要,只是大小很重要)。我的小提琴不會阻塞太多的記憶。 – pimvdb
謝謝你,非常感謝你 – Mark