最近做一个canvas签名功能。需要在touchmove时实时绘制轨迹路径。
但是发现在touchmove中运行draw无法绘图。而在touchend运行draw则可以正常绘图。
目前做了个折衷方案,在touchstart时设置一个定时器定时运行draw,在touchend时销毁定时器。发现能画了,但画出的线条断断续续。而且定时器间隔时间越长画的越清晰,间隔时间越短画的越模糊。
有大神知道如何解决吗?或者有什么第三方插件有签名功能可以用吗?
求救。。。
糯米大团子
- 发布:2019-01-15 18:27
- 更新:2021-06-05 11:27
- 阅读:2756
7 个回复
糯米大团子 (作者)
这是在小程序里运行的效果。
touchMove依旧没有留下任何痕迹。
touchStart效果比在手机上显示效果好。
touchEnd曲线不失真了,但是堆栈溢出。
因为项目比较紧,我现在已经改成用web-view调用网页的canvas来实现了。这个问题官方可以考虑一下是否需要优化。否则我怀疑在用canvas做高帧数的动画效果时这个问题也可能成为阻碍。
糯米大团子 (作者)
关键代码是这样的
具体vue文件放在zip压缩包里
DCloud_UNI_GSQ
你这用法看起来不对,你怎么每次从原点开始画,应该是一段一段的画吧,每次开始是上次的结束
糯米大团子 (作者)
已修改代码了。并且贴了效果图
2019-01-16 14:40
糯米大团子 (作者)
噢,是的。漏了一句。我重新发一下代码。顺便附上执行图。
这是在touchEnd执行draw的效果。
这是在touchStart执行定时器的效果。
而在touchMove没有留下任何轨迹。
另外修改代码时发现一个新问题。在touchEnd绘制时,我画的是曲线,但是到执行draw时会失真成为直线。
DCloud_UNI_GSQ
你试试直接写小程序不用uniapp是否正常?
2***@qq.com
请问你解决了吗?我现在也遇到这个问题,ios手机正常,安卓手机就突然不执行触摸的方法了
DCloud_UNI_GSQ
哪端出现的问题?上传一个demo,我调试看看
糯米大团子 (作者)
android原生和小程序都有问题。demo我贴在2楼了
2019-01-16 09:14