摘要: 之前做了个用指针标记位置的,换了个思路用2个队列实现一下:(类似浏览器的前进后退逻辑,撤销后重做,会丢弃撤销前的步骤) 1、2个数组保存所有步骤: 历史队列 previous,未来队列 future,画布内容永远为 previous 队列最后一个值 2、每次 增删改 操作,都会将当前画布序列化,并压 阅读全文
posted @ 2022-04-26 14:39 名字不好起啊 阅读(736) 评论(0) 推荐(0)
摘要: 画布的保存撤销等,都需要进行序列化当前画布内容。 那额外定义的属性目前 fabric 是不会自己去序列化,于是就有了扩展 toObject 的解决方法: let rect = new fabric.Rect(Rect.defaultRect()); rect.toObject = (function 阅读全文
posted @ 2022-04-26 13:47 名字不好起啊 阅读(193) 评论(0) 推荐(0)
摘要: 画布上的 操作,撤销保存重做是少不了的,记录下实现:(项目中的撤销重做逻辑) 1、主要逻辑就是一个数组 operateList 保存所有步骤 2、每次 增删改 操作,都会将当前画布序列化,并插入当前指针 +1 项,这是防止后续可能存在步骤(而不能简单的 push 在队尾) 3、撤销,判断前一针是否有 阅读全文
posted @ 2022-04-26 13:38 名字不好起啊 阅读(472) 评论(0) 推荐(0)