再次进入含画布页面,执行多次绘图后,画布可能变为空白,绘图失效?
发布于 7 年前 作者 tcheng 14218 次浏览 来自 问答

微信版本号:7.0.14(iOS 12.4.7

小程序基础库版本号:2.11.0;2.12.0都是同样的表现

————————————————————

问题描述:

一个页面A内含一个画布和若干按钮,点击按钮画布会重绘部分内容(先clearRect,再moveTo lineTo stroke等等)

小程序启动后,从首页首次navigateTo页面A,点击按钮,画布重绘都正常,但是,back回首页,再次点进页面A,画布重绘若干次之后,会发生画布区域变为空白,不能绘制上任何内容,此时查看vConsole内log,没有任何错误信息。为<canvas> 加上binderror也打印不出任何信息。

如果再次back会主页,在进入页面A,情况依旧,开始几次能正常重绘,若干次重绘后,大概率画布变空白,少数时候还会导致微信整个闪退!


我尝试简化问题,做了一个空白主页,放置一个navigator链接到页面B,页面B是微信官方的canvas type=“2d”的demo页面(9个绿色小球+一个黄色小车动画),发现情况依旧:首次进入页面B,一切正常,back回首页,再次进入页面B,大概率动画运行3~10秒后,画布变为空白。。。

如果注释掉redraw()函数里的clearRect,则上述异常变成了画布内容卡死,不再刷新。总之,就是再次进入页面B之后,若干次绘画后,画布重绘失效了

——————————————————————

PS:在开发者工具、Android手机,以上情况没有发生。

1 回复

你好,麻烦提供出现问题的具体机型、能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

回到顶部