UNPKG

bodymovin

Version:

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

49 lines (48 loc) 2.03 kB
function SVGEffects(elem){ var i, len = elem.data.ef.length; var filId = randomString(10); var fil = filtersFactory.createFilter(filId); var count = 0; this.filters = []; var filterManager; for(i=0;i<len;i+=1){ if(elem.data.ef[i].ty === 20){ count += 1; filterManager = new SVGTintFilter(fil, elem.effects.effectElements[i]); this.filters.push(filterManager); }else if(elem.data.ef[i].ty === 21){ count += 1; filterManager = new SVGFillFilter(fil, elem.effects.effectElements[i]); this.filters.push(filterManager); }else if(elem.data.ef[i].ty === 22){ filterManager = new SVGStrokeEffect(elem, elem.effects.effectElements[i]); this.filters.push(filterManager); }else if(elem.data.ef[i].ty === 23){ count += 1; filterManager = new SVGTritoneFilter(fil, elem.effects.effectElements[i]); this.filters.push(filterManager); }else if(elem.data.ef[i].ty === 24){ count += 1; filterManager = new SVGProLevelsFilter(fil, elem.effects.effectElements[i]); this.filters.push(filterManager); }else if(elem.data.ef[i].ty === 25){ count += 1; filterManager = new SVGDropShadowEffect(fil, elem.effects.effectElements[i]); this.filters.push(filterManager); }else if(elem.data.ef[i].ty === 28){ //count += 1; filterManager = new SVGMatte3Effect(fil, elem.effects.effectElements[i], elem); this.filters.push(filterManager); } } if(count){ elem.globalData.defs.appendChild(fil); elem.layerElement.setAttribute('filter','url(' + locationHref + '#'+filId+')'); } } SVGEffects.prototype.renderFrame = function(firstFrame){ var i, len = this.filters.length; for(i=0;i<len;i+=1){ this.filters[i].renderFrame(firstFrame); } };