UNPKG

lottie-web

Version:

After Effects plugin for exporting animations to SVG + JavaScript or canvas + JavaScript

58 lines (51 loc) 1.64 kB
import { extendPrototype, } from '../../utils/functionExtensions'; import { createSizedArray, } from '../../utils/helpers/arrays'; import PropertyFactory from '../../utils/PropertyFactory'; import CanvasRendererBase from '../../renderers/CanvasRendererBase'; import CVBaseElement from './CVBaseElement'; import ICompElement from '../CompElement'; function CVCompElement(data, globalData, comp) { this.completeLayers = false; this.layers = data.layers; this.pendingElements = []; this.elements = createSizedArray(this.layers.length); this.initElement(data, globalData, comp); this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true }; } extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement); CVCompElement.prototype.renderInnerContent = function () { var ctx = this.canvasContext; ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(this.data.w, 0); ctx.lineTo(this.data.w, this.data.h); ctx.lineTo(0, this.data.h); ctx.lineTo(0, 0); ctx.clip(); var i; var len = this.layers.length; for (i = len - 1; i >= 0; i -= 1) { if (this.completeLayers || this.elements[i]) { this.elements[i].renderFrame(); } } }; CVCompElement.prototype.destroy = function () { var i; var len = this.layers.length; for (i = len - 1; i >= 0; i -= 1) { if (this.elements[i]) { this.elements[i].destroy(); } } this.layers = null; this.elements = null; }; CVCompElement.prototype.createComp = function (data) { return new CVCompElement(data, this.globalData, this); }; export default CVCompElement;