UNPKG

bodymovin

Version:

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

76 lines (73 loc) 2.72 kB
function EffectsManager(data,element,dynamicProperties){ var effects = data.ef; this.effectElements = []; var i,len = effects.length; var effectItem; for(i=0;i<len;i++) { effectItem = new GroupEffect(effects[i],element,dynamicProperties); this.effectElements.push(effectItem); } } function GroupEffect(data,element,dynamicProperties){ this.dynamicProperties = []; this.init(data,element,this.dynamicProperties); if(this.dynamicProperties.length){ dynamicProperties.push(this); } } GroupEffect.prototype.getValue = function(){ this.mdf = false; var i, len = this.dynamicProperties.length; for(i=0;i<len;i+=1){ this.dynamicProperties[i].getValue(); this.mdf = this.dynamicProperties[i].mdf ? true : this.mdf; } }; GroupEffect.prototype.init = function(data,element,dynamicProperties){ this.data = data; this.mdf = false; this.effectElements = []; var i, len = this.data.ef.length; var eff, effects = this.data.ef; for(i=0;i<len;i+=1){ switch(effects[i].ty){ case 0: eff = new SliderEffect(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; case 1: eff = new AngleEffect(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; case 2: eff = new ColorEffect(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; case 3: eff = new PointEffect(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; case 4: case 7: eff = new CheckboxEffect(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; case 10: eff = new LayerIndexEffect(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; case 11: eff = new MaskIndexEffect(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; case 5: eff = new EffectsManager(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; case 6: eff = new NoValueEffect(effects[i],element,dynamicProperties); this.effectElements.push(eff); break; } } };