特效案例
这是一个噪点的特效案例的应用
https://filters.pixijs.download/main/examples/index.html?enabled=AsciiFilter
javascript
/**
* init(canvas, element, store, PIXI) 初始化函数
* play({relativeTime, duration, progress}) 播放动画函数
* pause() 暂停
* destroy() 销毁
*/
EModule.define('pixiZaoDian', [], function () {
let filter = null;
let bodyContainer = null;
function init(cav, element, store, PIXI) {
// 创建噪点滤镜
filter = new store.filters.CRTFilter();
filter.id = element.id;
if (!store.bodyContainer.filters) {
store.bodyContainer.filters = [];
bodyContainer = store.bodyContainer;
}
// 全局设置噪点
store.bodyContainer.filters.push(filter);
}
// 播放特效
function play({ relativeTime, duration, progress }) {
filter.enabled = true;
}
// 停止特效
function pause() {
filter.enabled = false;
}
// 销毁特效
function destroy() {
bodyContainer.filters = bodyContainer.filters.filter(d => d.id !== filter.id);
filter.enabled = false;
filter = null;
}
return { init, play, pause, destroy };
});