CTLText.prototype={constructor:CTLText,__autofit:function(){if(this._bFitText){var iFontSize=this._iFontSize;while(this._oText.getBounds().height>(this._iHeight-this._iPaddingV*2)||this._oText.getBounds().width>(this._iWidth-this._iPaddingH*2)){iFontSize--;this._oText.font=iFontSize+"px "+this._szFont;this._oText.lineHeight=Math.round(iFontSize*this._fLineHeightFactor);this.__updateY();this.__verticalAlign();if(iFontSize<8){break;}};this._iFontSize=iFontSize;}},__verticalAlign:function(){if(this._bVerticalAlign){var iCurHeight=this._oText.getBounds().height;this._oText.y-=(iCurHeight-this._iHeight)/2+(this._iPaddingV);}},__updateY:function(){this._oText.y=this._y+this._iPaddingV;switch(this._oText.textBaseline){case "middle":{this._oText.y+=(this._oText.lineHeight/2)+
(this._iFontSize*this._fLineHeightFactor-this._iFontSize);}break;}},__createText:function(szMsg){if(this._bDebug){this._oDebugShape=new createjs.Shape();this._oDebugShape.graphics.beginFill("rgba(255,0,0,0.5)").drawRect(this._x,this._y,this._iWidth,this._iHeight);this._oContainer.addChild(this._oDebugShape);}
this._oText=new createjs.Text(szMsg,this._iFontSize+"px "+this._szFont,this._szColor);this._oText.textBaseline="middle";this._oText.lineHeight=Math.round(this._iFontSize*this._fLineHeightFactor);this._oText.textAlign=this._szAlign;if(this._bMultiline){this._oText.lineWidth=this._iWidth-(this._iPaddingH*2);}else{this._oText.lineWidth=null;}
switch(this._szAlign){case "center":{this._oText.x=this._x+(this._iWidth/2);}break;case "left":{this._oText.x=this._x+this._iPaddingH;}break;case "right":{this._oText.x=this._x+this._iWidth-this._iPaddingH;}break;}
this._oContainer.addChild(this._oText);this.refreshText(szMsg);},setVerticalAlign:function(bVerticalAlign){this._bVerticalAlign=bVerticalAlign;},setOutline:function(iSize){if(this._oText!==null){this._oText.outline=iSize;}},setShadow:function(szColor,iOffsetX,iOffsetY,iBlur){if(this._oText!==null){this._oText.shadow=new createjs.Shadow(szColor,iOffsetX,iOffsetY,iBlur);}},setColor:function(szColor){this._oText.color=szColor;},setAlpha:function(iAlpha){this._oText.alpha=iAlpha;},setX:function(iX){this._oText.x=iX;this._x=iX;},setY:function(iY){this._oText.y=iY;this._y=iY;},removeTweens:function(){createjs.Tween.removeTweens(this._oText);},getText:function(){return this._oText;},getY:function(){return this._y;},getFontSize:function(){return this._iFontSize;},refreshText:function(szMsg){if(szMsg===""){szMsg=" ";}
if(this._oText===null){this.__createText(szMsg);}
this._oText.text=szMsg;this._oText.font=this._iFontSize+"px "+this._szFont;this._oText.lineHeight=Math.round(this._iFontSize*this._fLineHeightFactor);this.__autofit();this.__updateY();this.__verticalAlign();}};function CTLText(oContainer,x,y,iWidth,iHeight,iFontSize,szAlign,szColor,szFont,iLineHeightFactor,iPaddingH,iPaddingV,szMsg,bFitText,bVerticalAlign,bMultiline,bDebug){this._oContainer=oContainer;this._x=x;this._y=y;this._iWidth=iWidth;this._iHeight=iHeight;this._bMultiline=bMultiline;this._iFontSize=iFontSize;this._szAlign=szAlign;this._szColor=szColor;this._szFont=szFont;this._iPaddingH=iPaddingH;this._iPaddingV=iPaddingV;this._bVerticalAlign=bVerticalAlign;this._bFitText=bFitText;this._bDebug=bDebug;this._oDebugShape=null;this._fLineHeightFactor=iLineHeightFactor;this._oText=null;if(szMsg){this.__createText(szMsg);}}