first commit
This commit is contained in:
157
node_modules/lottie-web/player/js/animation/AnimationItemWorkerOverride.js
generated
vendored
Normal file
157
node_modules/lottie-web/player/js/animation/AnimationItemWorkerOverride.js
generated
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
import AnimationItem from './AnimationItem';
|
||||
import CanvasRenderer from '../renderers/CanvasRenderer';
|
||||
import dataManager from '../utils/DataManager';
|
||||
import {
|
||||
getExpressionsPlugin,
|
||||
} from '../utils/common';
|
||||
|
||||
AnimationItem.prototype.setParams = function (params) {
|
||||
if (params.context) {
|
||||
this.context = params.context;
|
||||
}
|
||||
var animType = 'svg';
|
||||
if (params.animType) {
|
||||
animType = params.animType;
|
||||
} else if (params.renderer) {
|
||||
animType = params.renderer;
|
||||
}
|
||||
switch (animType) {
|
||||
case 'canvas':
|
||||
this.renderer = new CanvasRenderer(this, params.rendererSettings);
|
||||
break;
|
||||
default:
|
||||
throw new Error('Only canvas renderer is supported when using worker.');
|
||||
}
|
||||
this.renderer.setProjectInterface(this.projectInterface);
|
||||
this.animType = animType;
|
||||
|
||||
if (params.loop === ''
|
||||
|| params.loop === null
|
||||
|| params.loop === undefined
|
||||
|| params.loop === true) {
|
||||
this.loop = true;
|
||||
} else if (params.loop === false) {
|
||||
this.loop = false;
|
||||
} else {
|
||||
this.loop = parseInt(params.loop, 10);
|
||||
}
|
||||
this.autoplay = 'autoplay' in params ? params.autoplay : true;
|
||||
this.name = params.name ? params.name : '';
|
||||
this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;
|
||||
this.assetsPath = null;
|
||||
if (params.animationData) {
|
||||
dataManager.completeAnimation(
|
||||
params.animationData,
|
||||
this.configAnimation
|
||||
);
|
||||
} else if (params.path) {
|
||||
throw new Error('Canvas worker renderer cannot load animation from url');
|
||||
}
|
||||
};
|
||||
|
||||
AnimationItem.prototype.setData = function () {
|
||||
throw new Error('Cannot set data on wrapper for canvas worker renderer');
|
||||
};
|
||||
|
||||
AnimationItem.prototype.includeLayers = function (data) {
|
||||
if (data.op > this.animationData.op) {
|
||||
this.animationData.op = data.op;
|
||||
this.totalFrames = Math.floor(data.op - this.animationData.ip);
|
||||
}
|
||||
var layers = this.animationData.layers;
|
||||
var i;
|
||||
var len = layers.length;
|
||||
var newLayers = data.layers;
|
||||
var j;
|
||||
var jLen = newLayers.length;
|
||||
for (j = 0; j < jLen; j += 1) {
|
||||
i = 0;
|
||||
while (i < len) {
|
||||
if (layers[i].id === newLayers[j].id) {
|
||||
layers[i] = newLayers[j];
|
||||
break;
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
this.animationData.__complete = false;
|
||||
dataManager.completeAnimation(this.animationData);
|
||||
this.renderer.includeLayers(data.layers);
|
||||
var expressionsPlugin = getExpressionsPlugin();
|
||||
if (expressionsPlugin) {
|
||||
expressionsPlugin.initExpressions(this);
|
||||
}
|
||||
this.loadNextSegment();
|
||||
};
|
||||
|
||||
AnimationItem.prototype.loadNextSegment = function () {
|
||||
var segments = this.animationData.segments;
|
||||
if (!segments || segments.length === 0 || !this.autoloadSegments) {
|
||||
this.timeCompleted = this.totalFrames;
|
||||
return;
|
||||
}
|
||||
throw new Error('Cannot load multiple segments in worker.');
|
||||
};
|
||||
|
||||
AnimationItem.prototype.loadSegments = function () {
|
||||
var segments = this.animationData.segments;
|
||||
if (!segments) {
|
||||
this.timeCompleted = this.totalFrames;
|
||||
}
|
||||
this.loadNextSegment();
|
||||
};
|
||||
|
||||
AnimationItem.prototype.imagesLoaded = null;
|
||||
|
||||
AnimationItem.prototype.preloadImages = null;
|
||||
|
||||
AnimationItem.prototype.configAnimation = function (animData) {
|
||||
if (!this.renderer) {
|
||||
return;
|
||||
}
|
||||
this.animationData = animData;
|
||||
this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);
|
||||
this.renderer.configAnimation(animData);
|
||||
if (!animData.assets) {
|
||||
animData.assets = [];
|
||||
}
|
||||
this.renderer.searchExtraCompositions(animData.assets);
|
||||
|
||||
this.assets = this.animationData.assets;
|
||||
this.frameRate = this.animationData.fr;
|
||||
this.firstFrame = Math.round(this.animationData.ip);
|
||||
this.frameMult = this.animationData.fr / 1000;
|
||||
this.loadSegments();
|
||||
this.updaFrameModifier();
|
||||
this.checkLoaded();
|
||||
};
|
||||
|
||||
AnimationItem.prototype.waitForFontsLoaded = null;
|
||||
|
||||
AnimationItem.prototype.checkLoaded = function () {
|
||||
if (!this.isLoaded) {
|
||||
this.isLoaded = true;
|
||||
var expressionsPlugin = getExpressionsPlugin();
|
||||
if (expressionsPlugin) {
|
||||
expressionsPlugin.initExpressions(this);
|
||||
}
|
||||
this.renderer.initItems();
|
||||
this.gotoFrame();
|
||||
}
|
||||
};
|
||||
|
||||
AnimationItem.prototype.destroy = function (name) {
|
||||
if ((name && this.name !== name) || !this.renderer) {
|
||||
return;
|
||||
}
|
||||
this.renderer.destroy();
|
||||
this._cbs = null;
|
||||
this.onEnterFrame = null;
|
||||
this.onLoopComplete = null;
|
||||
this.onComplete = null;
|
||||
this.onSegmentStart = null;
|
||||
this.onDestroy = null;
|
||||
this.renderer = null;
|
||||
};
|
||||
|
||||
AnimationItem.prototype.getPath = null;
|
Reference in New Issue
Block a user