文档中心 > 店铺动态卡片-开发指引

在小程序中使用 PixiJS

更新时间:2023/02/13 访问次数:13433

PixiJS 的相关介绍与动画生成方法等请参考 官方说明

依赖手淘版本 >= 9.8.0 的环境。


一、使用方法


1. 通过 npm 安装:


npm install @tbminiapp/pixi-miniprogram-engine --by=yarn
npm install @types/pixi.js@4.7.5 --by=yarn


2. app.json 里添加 enableSkia 配置:


{
  "pages": [
    "pages/index/index"
  ],
  "window": {
    "defaultTitle": "My App",
    "enableSkia":"true"
  }
}


3. axml 里传入 canvas 对象用于适配:


<canvas id="canvas" type="webgl" onReady="onCanvasReady" class="canvas" onTouchStart="onTouchHandle" onTouchMove="onTouchHandle" onTouchEnd="onTouchHandle"></canvas>


4. 使用 Pixi 接口:


//引入pixi引擎
import * as PIXI from "@tbminiapp/pixi-miniprogram-engine";

// registerCanvas 注册canvas给PIXI
const { registerCanvas, devicePixelRatio } = PIXI.miniprogram;
Page({
  // 供pixi渲染的canvas
  pixiCanvas:null,
  // canvas的onReady事件侦听函数 onCanvasReady
  onCanvasReady() {
    // 建立canvas引用
    my._createCanvas({
      id: "canvas",
      success: (canvas) => {
        const systemInfo = my.getSystemInfoSync();
        // 拿到当前设备像素密度
        const dpr = systemInfo.pixelRatio;
        // 拿到当前设备的宽高
        const windowWidth = systemInfo.windowWidth;
        const windowHeight = systemInfo.windowHeight;
        // 为canvas设定宽高(需要设备宽高* 像素密度);
        canvas.width = windowWidth * dpr;
        canvas.height = windowHeight * dpr;
        this.pixiCanvas = canvas;
        //为pixi引擎注册当前的canvas
        registerCanvas(canvas);

        //初始化PIXI.Application
        //计算application的宽高
        const size = {
          width: canvas.width / devicePixelRatio,
          height: canvas.height / devicePixelRatio,
        };
        const context = canvas.getContext('2d'); // canvas.getContext('webgl')
        const application = new PIXI.Application({
          width: size.width,
          height: size.height,
          view: canvas,
          context: context,
          transparent: true,
          // 强制使用2d上下文进行渲染,如果为flase,则默认使用webgl渲染
          forceCanvas: true,
          // 设置resolution 为像素密度
          resolution: devicePixelRatio,
        });
      },
    });
  },
  // 监听小程序canvas的touch事件,并触发pixi内部事件
  onTouchHandle(event) {
    if (this.pixiCanvas && event.changedTouches && event.changedTouches.length) {
      this.pixiCanvas.dispatchEvent(event);
    }
  }
});


二、说明


1. 目前 Canvas 渲染模式要求手淘版本 > 9.7.0,项目中需要进行判断版本,不支持的版本需要提示用户降级。

2. 目前 WebGL 渲染模式要求手淘版本 > 9.9.0,项目中需要进行判断版本,不支持的版本需要提示用户降级。

3. 目前小程序IDE只支持”真机调试“和“预览”方式进行项目debug和预览,为保证构建速度,建议使用1.13.4版本以上IDE。

4. 小程序IDE模拟器中暂时无法预览和调试。


FAQ

关于此文档暂时还没有FAQ
返回
顶部