| function CVShapeElement(data, renderer){ |
| this.shapes = []; |
| this.parent.constructor.call(this,data, renderer); |
| } |
| createElement(CVBaseElement, CVShapeElement); |
| |
| CVShapeElement.prototype.createElements = function(){ |
| |
| this.parent.createElements.call(this); |
| |
| var i, len = this.data.shapes.length; |
| var shapeItem; |
| for(i=len-1;i>=0;i--){ |
| if(this.data.trim){ |
| this.data.shapes[i].trim = this.data.trim; |
| } |
| shapeItem = new CVShapeItemElement(this.data.shapes[i], this.renderer); |
| this.shapes.push(shapeItem); |
| } |
| }; |
| |
| CVShapeElement.prototype.prepareFrame = function(num){ |
| var renderParent = this.parent.prepareFrame.call(this,num); |
| if(renderParent===false){ |
| return; |
| } |
| var i,len = this.data.shapes.length; |
| for(i=len-1;i>=0;i--){ |
| this.shapes[len - 1 - i].prepareFrame(num); |
| } |
| }; |
| |
| CVShapeElement.prototype.draw = function(){ |
| this.renderer.canvasContext.save(); |
| if(this.parent.draw.call(this, false)===false){ |
| this.renderer.canvasContext.restore(); |
| return; |
| } |
| this.drawShapes(); |
| this.renderer.canvasContext.restore(); |
| }; |
| |
| CVShapeElement.prototype.drawShapes = function(){ |
| var i,len = this.data.shapes.length; |
| for(i=len-1;i>=0;i--){ |
| this.shapes[len - 1 - i].renderShape(); |
| } |
| }; |