vue使用SVGA
背景vue2使用svga。
可用的JS库svga和svgaplayerweb
svga
import { Parser, Player } from 'svga'
<button @click="startPlayerSVGA">start</button>
<button @click="stopPlayerSVGA">stop</button>
<canvas class="learn-vga-container" id="svga-container"></canvas>
import { Parser, Player } from 'svga'
playerSVGA: null,
parserSVGA: null,
// 创建svga播放
async creatPlayerSVGA(){
this.parserSVGA = new Parser()
const svga = await this.parserSVGA.load('/svg/index-01-an.svga')
this.playerSVGA = new Player(document.getElementById('svga-container'))
await this.playerSVGA.mount(svga)
// console.log(this.playerSVGA)
// this.playerSVGA.onStart = () => console.log('onStart')
// this.playerSVGA.onResume = () => console.log('onResume')
// this.playerSVGA.onPause = () => console.log('onPause')
// this.playerSVGA.onStop = () => console.log('onStop')
// this.playerSVGA.onProcess = () => console.log('onProcess', this.playerSVGA .progress)
// this.playerSVGA.onEnd = () => console.log('onEnd')
// 开始播放动画
this.playerSVGA.start()
},
// 暂停svga
stopPlayerSVGA(){
this.playerSVGA.pause()
// 继续播放动画
// this.playerSVGA.resume()
},
// 重新开始svga
startPlayerSVGA(){
this.playerSVGA.start()
},
// 销毁svga
destroyPlayerSVGA(){
if (this.playerSVGA||this.parserSVGA) {
// 卸载动画资源,防止内存泄漏
this.parserSVGA.destroy()
this.playerSVGA.destroy()
this.parserSVGA = null
this.playerSVGA = null
}
},
beforeDestroy() {
this.destroyPlayerSVGA()
this.destroyPlayerSVGATwo()
this.destroyPlayerSVGAThree()
},
svgaplayerweb
import SVGA from 'svgaplayerweb';
这个有个坑就是在销毁时需要清除调用的API居然是stopAnimation(true)
this.playerSVGA.stopAnimation(true)
this.playerSVGA.clearDynamicObjects()
this.playerSVGA.clear()
this.playerSVGA = null;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
2023-04-17 TS初始化Demo
2017-04-17 JS判断PC和移动端设备