Skip to content

LimePag PAG动画组件

一个高性能的PAG动画渲染组件,基于腾讯高性能动画渲染库,完美兼容UniApp(微信小程序、H5)和UniAppX(微信小程序、H5、安卓、iOS)平台。支持加载、播放、暂停PAG动画,并提供丰富的事件监听功能。

插件依赖:UniAppX App端需要依赖 lime-pag-x 原生插件

文档链接

📚 组件详细文档请访问以下站点:

安装方法

  1. 在uni-app插件市场入口 中搜索并导入lime-pag
  2. 根据平台安装相应依赖:
    • 微信小程序: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是否自动播放booleanfalse
repeatCount重复播放次数,0为无限循环number1
srcPAG文件路径string-

Events 事件

事件名说明回调参数
initPAG初始化完成时触发PAG: LPAG
frame动画播放进度更新时触发progress: number
fail发生错误时触发error: Error

常见问题

  • 微信小程序无法读取pag的本地资源,但可以将pag后缀改成png就能读取
  • H5环境下可能存在跨域问题,请确保PAG资源允许跨域访问
  • App端需要额外安装lime-pag-x原生插件

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助微信赞助

源代码

组件源码