| 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); |
| } |
| } |
| if(count){ |
| elem.globalData.defs.appendChild(fil); |
| elem.layerElement.setAttribute('filter','url(#'+filId+')'); |
| } |
| } |
| |
| SVGEffects.prototype.renderFrame = function(firstFrame){ |
| var i, len = this.filters.length; |
| for(i=0;i<len;i+=1){ |
| this.filters[i].renderFrame(firstFrame); |
| } |
| }; |