Skip to content

特效说明

无界云剪辑中的特效是采用 Canvas 开发的,采用 require 的模式加载到项目中,这里只需要掌握 4 个基本 api 即可

模块化配置说明

因为采用模块化开发的特效插件,我们需要配置模块化加载的地址,具体参考 Core-SDK 参数说明配置EModuleEffectSourcePath模块加载路径,

特效组件默认使用.txt文件(安全考虑),可以设置参数window.EModuleEffectSourcePathDev = true来加载.js文件(建议在开发环境中使用)。

API 说明

开发特效只需要掌握下面 4 个基本 api 即可:

  • init(canvas, element, store, PIXI) 初始化组件的时候调用
  • play({relativeTime, duration, progress}) 播放动画的时候调用
  • pause() 停止播放的时候调用
  • destroy() 销毁后调用

模块化(moduleName.js)为例:

javascript
/**
 * init(canvas, element, store, PIXI) 初始化函数
 * play({relativeTime, duration, progress}) 播放动画函数
 * pause() 暂停
 * destroy() 销毁
 */
EModule.define("moduleName", [], function () {
  let ctx = null;
  let canvas = null;

  function init(cav) {
    canvas = cav;
    ctx = canvas.getContext("2d", { alpha: true });
  }

  function play({ relativeTime, duration, progress }) {
    console.log({ relativeTime, duration, progress });
  }

  function pause() {
    console.log("pause");
  }

  function destroy() {
    console.log("destroy");
  }

  return { init, play, pause, destroy };
});

init(canvas, element, store, PIXI) 初始化触发

参数说明:

  • canvas 特效组件初始化的时候会调用,默认传入的参数有一个 canvas 元素,我们只需要在这个 canvas 元素上进行特效绘制。
  • element 特效元素的 JSON 数据,存放参数信息的
  • store 渲染内核暴露的全部参数,如果需要多元素联动,可以从这里去获取需要的参数
  • PIXI pixijs 包

play({ relativeTime, duration, progress }) 播放动画触发

当游标进入特效组件区域的时候会重复触发

参数说明:

  • relativeTime 游标扫过元素的相对时间
  • duration 特效元素的总时长
  • progress 游标扫过元素的进度,等于 relative/duration

pause() 暂停触发

当游标离开特效组件区域的时候会触发

destroy() 销毁触发

当特效组件被删除的时候会触发,这时候可以删除画布防止出现内存的泄露

Powered by 四川爱趣五科技有限公司.蜀ICP备18034069号.