主题
LimePag PAG动画组件
一个高性能的PAG动画渲染组件,基于腾讯高性能动画渲染库,完美兼容UniApp(微信小程序、H5)和UniAppX(微信小程序、H5、安卓、iOS)平台。支持加载、播放、暂停PAG动画,并提供丰富的事件监听功能。
插件依赖:UniAppX App端需要依赖
lime-pag-x
原生插件
文档链接
📚 组件详细文档请访问以下站点:
安装方法
- 在uni-app
中搜索并导入
lime-pag
- 根据平台安装相应依赖:
- 微信小程序:
npm install libpag-miniprogram --save
- H5:
npm install libpag --save
- UniappX App端:需要额外导入lime-pag-x原生插件
- 微信小程序:
注意:如果小程序控制台报错提示未加载wasm,请把
node_modules/libpag-miniprogram/lib/libpag.wasm.br
复制到uni_modules/lime-pag/static/
目录下
代码演示
基础用法
创建一个PAG动画组件并播放动画。
html
<l-pag ref="pagRef" @init="init"></l-pag>
js
const pagRef = ref(null);
let pagView = null;
const init = async (PAG) => {
// 加载PAG文件
const pagFile = await PAG.PAGFile.load('https://pag.art/file/like.pag');
// 初始化PAG视图
pagView = await PAG.PAGView.init(pagFile);
// 播放动画
pagView.play();
// 添加事件监听
pagView.addListener('onAnimationStart', () => {
console.log('动画开始')
});
pagView.addListener('onAnimationEnd', () => {
console.log('动画结束')
});
}
// 播放动画
const play = () => {
if(!pagView) return;
pagView.play();
}
// 暂停动画
const pause = () => {
if(!pagView) return;
pagView.pause();
}
UniAppX 用法
UniAppX App端需要依赖lime-pag-x原生插件。
html
<l-pag style="height: 450px;" ref="pagRef" @init="init"></l-pag>
ts
import type { LPAG, LPAGView } from '@/uni_modules/lime-pag'
let pagView: LPAGView | null = null;
const pag = `https://pag.art/file/like.pag`;
const init = async (PAG: LPAG) => {
const pagFile = await PAG.PAGFile.load(pag);
pagView = await PAG.PAGView.init(pagFile);
// 设置动画重复次数,默认是1,0为无限次
pagView!.setRepeatCount(5);
pagView!.play();
pagView!.addListener('onAnimationStart', () => {
console.log('动画开始')
});
pagView!.addListener('onAnimationEnd', () => {
console.log('动画结束')
});
}
const play = () => {
if(pagView == null) return;
pagView?.play();
}
const pause = () => {
if(pagView == null) return;
pagView?.pause();
}
快速预览
导入插件后,可以直接使用以下标签查看演示效果:
html
<!-- 代码位于 uni_modules/lime-pag/components/lime-pag -->
<lime-pag />
插件标签说明
标签名 | 说明 |
---|---|
l-pag | 组件标签 |
lime-pag | 演示标签 |
Vue2使用说明
main.js中添加以下代码:
js
// vue2项目中使用
import Vue from 'vue'
import VueCompositionAPI from '@vue/composition-api'
Vue.use(VueCompositionAPI)
详细配置请参考官方文档:Vue Composition API
API文档
Props 属性说明
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
width | 画布宽度 | number | - |
height | 画布高度 | number | - |
autoPlay | 是否自动播放 | boolean | false |
repeatCount | 重复播放次数,0为无限循环 | number | 1 |
src | PAG文件路径 | string | - |
Events 事件
事件名 | 说明 | 回调参数 |
---|---|---|
init | PAG初始化完成时触发 | PAG: LPAG |
frame | 动画播放进度更新时触发 | progress: number |
fail | 发生错误时触发 | error: Error |
常见问题
- 微信小程序无法读取pag的本地资源,但可以将pag后缀改成png就能读取
- H5环境下可能存在跨域问题,请确保PAG资源允许跨域访问
- App端需要额外安装lime-pag-x原生插件
支持与赞赏
如果你觉得本插件解决了你的问题,可以考虑支持作者:
支付宝赞助 | 微信赞助 |
---|---|
![]() | ![]() |