收藏
回答

想大牛们请求个问题,画板canvas如何撤销上一笔

问题模块 框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小游戏 canvas 客户端 Android 最新版 最新版

画板想做一个撤销功能,现在试了试把每次down,move ,up都作为一个对象保存在数组中,

撤销的话就删掉最后一个重新绘制,但是重新绘制后又好慢啊~~有没有大神提供下思路或者解决方法


最后一次编辑于  2018-03-01  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

12 个回答

  • 这都申请了
    这都申请了
    2018-03-01

    画布不就是需要不停的绘制吗?

    2018-03-01
    赞同
    回复
  • 贞重
    贞重
    2018-03-01

    是需要不停绘制,不过是类似画画的,画画的时候画错了 不想用橡皮,想返回上一步

    2018-03-01
    赞同
    回复
  • 这都申请了
    这都申请了
    2018-03-01

    restore行不行?

    2018-03-01
    赞同
    回复
  • 贞重
    贞重
    2018-03-01

    save和restore怎么使用?大致逻辑能讲下吗

    2018-03-01
    赞同
    回复
  • 这都申请了
    这都申请了
    2018-03-01

    我只看过这一块的文档,没用过,大致就是上一次draw以后save,这次画完感觉不对,就restore,然后draw

    2018-03-01
    赞同
    回复
  • 这都申请了
    这都申请了
    2018-03-01

    http://blog.csdn.net/u014788227/article/details/52250208  仅供参考

    2018-03-01
    赞同
    回复
  • 不急
    不急
    2018-03-01

    记录每次画图动作到数组

    2018-03-01
    赞同
    回复
  • 花叔
    花叔
    2018-03-04

    。。。。  解决了为什么不说说方案

    2018-03-04
    赞同
    回复
  • 贞重
    贞重
    2018-03-05

    sorry,忘记了,大致说下方案和实现。每一次start的时候(而不是end或者cancel的时候)获取当前画布上的图片地址,然后把图片地址保存数组(add),撤销的时候,drawimage数组最后一个图片地址,然后删除此索引。(容错判读等等不写了。。)

    如果要加恢复功能的话 新加一个数组记录撤销的图片地址就行了。

    前提是当前保存的图片路径是有效的情况下

    2018-03-05
    赞同
    回复
  • 花叔
    花叔
    2018-03-06

    但这样的话,好像会有个性能问题?我试过类似的逻辑,貌似drawimage后,move事件会变得卡顿,后来我换了另一种思路,如果只是划线,把start到move到end这一次划线操作所经过的点记录下来,每次动态绘制,这样性能就好很多了。不会卡

    2018-03-06
    赞同
    回复