| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- function CTextButton(iXPos,iYPos,oSprite,szText,szFont,szColor,iFontSize,bAttach){
- var _bDisable;
- var _iWidth;
- var _iHeight;
- var _aCbCompleted;
- var _aCbOwner;
- var _oListenerDown;
- var _oListenerUp;
-
- var _oParams;
- var _oButton;
- var _oTextBack;
- var _oText;
- var _oButtonBg;
-
- this._init =function(iXPos,iYPos,oSprite,szText,szFont,szColor,iFontSize,bAttach){
- _bDisable = false;
- _aCbCompleted=new Array();
- _aCbOwner =new Array();
- _oButtonBg = createBitmap( oSprite);
- _iWidth = oSprite.width;
- _iHeight = oSprite.height;
-
- var iStepShadow = Math.ceil(iFontSize/20);
- _oTextBack = new createjs.Text(szText,iFontSize+"px "+szFont, "#000000");
- var oBounds = _oTextBack.getBounds();
- _oTextBack.textAlign = "center";
- _oTextBack.lineWidth = _iWidth *0.9;
- _oTextBack.textBaseline = "alphabetic";
- _oTextBack.x = oSprite.width/2 + iStepShadow;
- _oTextBack.y = Math.floor((oSprite.height)/2) +(oBounds.height/3) + iStepShadow;
- _oText = new createjs.Text(szText,iFontSize+"px "+szFont, szColor);
- _oText.textAlign = "center";
- _oText.textBaseline = "alphabetic";
- _oText.lineWidth = _iWidth *0.9;
- _oText.x = oSprite.width/2;
- _oText.y = Math.floor((oSprite.height)/2) +(oBounds.height/3);
- _oButton = new createjs.Container();
- _oButton.x = iXPos;
- _oButton.y = iYPos;
- _oButton.regX = oSprite.width/2;
- _oButton.regY = oSprite.height/2;
- if (!s_bMobile){
- _oButton.cursor = "pointer";
- }
- _oButton.addChild(_oButtonBg,_oTextBack,_oText);
-
- if(bAttach !== false){
- s_oStage.addChild(_oButton);
- }
-
- this._initListener();
- };
-
- this.unload = function(){
- _oButton.off("mousedown", _oListenerDown);
- _oButton.off("pressup" , _oListenerUp);
-
- s_oStage.removeChild(_oButton);
- };
-
- this.setVisible = function(bVisible){
- _oButton.visible = bVisible;
- };
-
- this.setAlign = function(szAlign){
- _oText.textAlign = szAlign;
- _oTextBack.textAlign = szAlign;
- };
-
- this.enable = function(){
- _bDisable = false;
-
- _oButtonBg.filters = [];
- _oButtonBg.cache(0,0,_iWidth,_iHeight);
- };
-
- this.disable = function(){
- _bDisable = true;
-
- var matrix = new createjs.ColorMatrix().adjustSaturation(-100).adjustBrightness(40);
- _oButtonBg.filters = [
- new createjs.ColorMatrixFilter(matrix)
- ];
- _oButtonBg.cache(0,0,_iWidth,_iHeight);
- };
-
- this._initListener = function(){
- _oListenerDown = _oButton.on("mousedown", this.buttonDown);
- _oListenerUp = _oButton.on("pressup" , this.buttonRelease);
- };
-
- this.addEventListener = function( iEvent,cbCompleted, cbOwner ){
- _aCbCompleted[iEvent]=cbCompleted;
- _aCbOwner[iEvent] = cbOwner;
- };
-
- this.addEventListenerWithParams = function(iEvent,cbCompleted, cbOwner,oParams){
- _aCbCompleted[iEvent]=cbCompleted;
- _aCbOwner[iEvent] = cbOwner;
-
- _oParams = oParams;
- };
-
- this.buttonRelease = function(){
- if(_bDisable){
- return;
- }
-
- playSound("click",1,false);
-
- _oButton.scaleX = 1;
- _oButton.scaleY = 1;
- if(_aCbCompleted[ON_MOUSE_UP]){
- _aCbCompleted[ON_MOUSE_UP].call(_aCbOwner[ON_MOUSE_UP],_oParams);
- }
- };
-
- this.buttonDown = function(){
- if(_bDisable){
- return;
- }
- _oButton.scaleX = 0.9;
- _oButton.scaleY = 0.9;
- if(_aCbCompleted[ON_MOUSE_DOWN]){
- _aCbCompleted[ON_MOUSE_DOWN].call(_aCbOwner[ON_MOUSE_DOWN]);
- }
- };
-
- this.setPosition = function(iXPos,iYPos){
- _oButton.x = iXPos;
- _oButton.y = iYPos;
- };
-
- this.changeText = function(szText){
- _oText.text = szText;
- _oTextBack.text = szText;
- };
-
- this.setX = function(iXPos){
- _oButton.x = iXPos;
- };
-
- this.setY = function(iYPos){
- _oButton.y = iYPos;
- };
-
- this.getButtonImage = function(){
- return _oButton;
- };
- this.getX = function(){
- return _oButton.x;
- };
-
- this.getY = function(){
- return _oButton.y;
- };
-
- this.getSprite = function(){
- return _oButton;
- };
- this._init(iXPos,iYPos,oSprite,szText,szFont,szColor,iFontSize,bAttach);
-
- return this;
-
- }
|