小程序
小游戏
企业微信
微信支付
扫描小程序码分享
使用lottie-miniprogram,在真机上扫码进入小程序执行动画没问题,点击右上角按钮退出再扫码进去的话动画就卡住不动了,这个插件好鸡肋啊,官方能解决不
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
代码调试的过程中发现,页面销毁时动画不会结束,也就是lottie不能自动销毁requestAnimationFrame回调里的动画,于是我手动收集了动画id,在页面onUnload时cancelAnimationFrame,以为这样问题能解决,结果不行,并且发现第二次进入页面时,requestAnimationFrame再也不触发了,于是手动收集上一次动画的回调传入,问题解决。
代码片段:
let frameFn = function () { }; let rid = 0; let canvasDom = null; page({ onReady () { wx.createSelectorQuery().select('#canvas').node((res) => { const canvas = res.node; const requestAnimationFrame = canvas.requestAnimationFrame; canvas.requestAnimationFrame = function () { frameFn = arguments[0]; rid = requestAnimationFrame.apply(canvas, arguments); return rid; } // 页面第二次打开时动画默认不会开始,这里需要手动调用一次动画 canvas.requestAnimationFrame(frameFn); canvasDom = canvas; lottie.setup(canvas); lottie.loadAnimation({ autoplay: true, loop: true, animationData: openCardAnimationData, rendererSettings: { context: canvas._ctx } }); }).exec(); }, onUnload () { // 销毁页面时 关闭动画 canvasDom.cancelAnimationFrame(rid); } })
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
2020-08-03,这个问题目测还存在,官方还在关注这个问题?
麻烦问一下怎么解决
,体验版的入口
你好,麻烦具体描述问题流程,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
谢邀,方便的话,上个代码片段吧
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
代码调试的过程中发现,页面销毁时动画不会结束,也就是lottie不能自动销毁requestAnimationFrame回调里的动画,于是我手动收集了动画id,在页面onUnload时cancelAnimationFrame,以为这样问题能解决,结果不行,并且发现第二次进入页面时,requestAnimationFrame再也不触发了,于是手动收集上一次动画的回调传入,问题解决。
代码片段:
let frameFn = function () { }; let rid = 0; let canvasDom = null; page({ onReady () { wx.createSelectorQuery().select('#canvas').node((res) => { const canvas = res.node; const requestAnimationFrame = canvas.requestAnimationFrame; canvas.requestAnimationFrame = function () { frameFn = arguments[0]; rid = requestAnimationFrame.apply(canvas, arguments); return rid; } // 页面第二次打开时动画默认不会开始,这里需要手动调用一次动画 canvas.requestAnimationFrame(frameFn); canvasDom = canvas; lottie.setup(canvas); lottie.loadAnimation({ autoplay: true, loop: true, animationData: openCardAnimationData, rendererSettings: { context: canvas._ctx } }); }).exec(); }, onUnload () { // 销毁页面时 关闭动画 canvasDom.cancelAnimationFrame(rid); } })
2020-08-03,这个问题目测还存在,官方还在关注这个问题?
麻烦问一下怎么解决
,体验版的入口
你好,麻烦具体描述问题流程,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
谢邀,方便的话,上个代码片段吧