blob: 0afb410771b405e411839c5de241d30a7c8f5942 [file] [log] [blame]
function HCompElement(data,parentContainer,globalData,comp, placeholder){
this.parent.constructor.call(this,data,parentContainer,globalData,comp, placeholder);
this.layers = data.layers;
this.isSvg = false;
if(this.data.tm){
this.tm = PropertyFactory.getProp(this,this.data.tm,0,globalData.frameRate,this.dynamicProperties);
}
if(this.data.hasMask) {
this.isSvg = true;
}
}
createElement(HBaseElement, HCompElement);
HCompElement.prototype.getDomElement = function(){
return this.composingElement;
};
HCompElement.prototype.getComposingElement = function(){
return this.layerElement;
};
HCompElement.prototype.createElements = function(){
this.layerElement = document.createElement('div');
styleDiv(this.layerElement);
if(this.data.ln){
this.layerElement.setAttribute('id',this.data.ln);
}
this.layerElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';
if(this.layerElement !== this.parentContainer){
this.placeholder = null;
}
if(this.data.hasMask){
var compSvg = document.createElementNS(svgNS,'svg');
compSvg.setAttribute('width',this.data.w);
compSvg.setAttribute('height',this.data.h);
var g = document.createElementNS(svgNS,'g');
compSvg.appendChild(g);
this.layerElement.appendChild(compSvg);
this.maskedElement = g;
this.composingElement = g;
}else{
this.composingElement = this.layerElement;
}
this.appendNodeToParent(this.layerElement);
};
HCompElement.prototype.hide = ICompElement.prototype.hide;
HCompElement.prototype.prepareFrame = ICompElement.prototype.prepareFrame;
HCompElement.prototype.setElements = ICompElement.prototype.setElements;
HCompElement.prototype.getElements = ICompElement.prototype.getElements;
HCompElement.prototype.destroy = ICompElement.prototype.destroy;
HCompElement.prototype.renderFrame = function(parentMatrix){
var renderParent = this.parent.renderFrame.call(this,parentMatrix);
var i,len = this.layers.length;
if(renderParent===false){
this.hide();
return;
}
this.hidden = false;
for( i = 0; i < len; i+=1 ){
this.elements[i].renderFrame();
}
if(this.firstFrame){
this.firstFrame = false;
}
};