CGfxButton.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. function CGfxButton(iXPos,iYPos,oSprite,oParentContainer){
  2. var _iScale;
  3. var _oParentContainer = oParentContainer;
  4. var _aCbCompleted;
  5. var _aCbOwner;
  6. var _aParams = [];
  7. var _oButton;
  8. var _oTween = null;
  9. var _oParent = this;
  10. this._init =function(iXPos,iYPos,oSprite){
  11. _iScale = 1;
  12. _aCbCompleted=new Array();
  13. _aCbOwner =new Array();
  14. _oButton = createBitmap( oSprite);
  15. _oButton.x = iXPos;
  16. _oButton.y = iYPos;
  17. _oButton.regX = oSprite.width/2;
  18. _oButton.regY = oSprite.height/2;
  19. _oButton.cursor = "pointer";
  20. if(!_oParentContainer){
  21. _oParentContainer = s_oStage;
  22. }
  23. _oParentContainer.addChild(_oButton);
  24. this._initListener();
  25. };
  26. this.unload = function(){
  27. _oButton.off("mousedown", this.buttonDown);
  28. _oButton.off("pressup" , this.buttonRelease);
  29. if(_oTween){
  30. createjs.Tween.removeTweens(_oTween);
  31. }
  32. _oParentContainer.removeChild(_oButton);
  33. };
  34. this.setVisible = function(bVisible){
  35. _oButton.visible = bVisible;
  36. };
  37. this._initListener = function(){
  38. _oButton.on("mousedown", this.buttonDown);
  39. _oButton.on("pressup" , this.buttonRelease);
  40. };
  41. this.addEventListener = function( iEvent,cbCompleted, cbOwner ){
  42. _aCbCompleted[iEvent]=cbCompleted;
  43. _aCbOwner[iEvent] = cbOwner;
  44. };
  45. this.addEventListenerWithParams = function(iEvent,cbCompleted, cbOwner,aParams){
  46. _aCbCompleted[iEvent]=cbCompleted;
  47. _aCbOwner[iEvent] = cbOwner;
  48. _aParams = aParams;
  49. };
  50. this.buttonRelease = function(){
  51. _oButton.scaleX = _iScale;
  52. _oButton.scaleY = _iScale;
  53. playSound("click",1,false);
  54. if(_aCbCompleted[ON_MOUSE_UP]){
  55. _aCbCompleted[ON_MOUSE_UP].call(_aCbOwner[ON_MOUSE_UP],_aParams);
  56. }
  57. };
  58. this.buttonDown = function(){
  59. _oButton.scaleX = _iScale*0.9;
  60. _oButton.scaleY = _iScale*0.9;
  61. if(_aCbCompleted[ON_MOUSE_DOWN]){
  62. _aCbCompleted[ON_MOUSE_DOWN].call(_aCbOwner[ON_MOUSE_DOWN],_aParams);
  63. }
  64. };
  65. this.setScale = function(iValue){
  66. _iScale = iValue;
  67. _oButton.scaleX = iValue;
  68. _oButton.scaleY = iValue;
  69. };
  70. this.setPosition = function(iXPos,iYPos){
  71. _oButton.x = iXPos;
  72. _oButton.y = iYPos;
  73. };
  74. this.moveInPosition = function(iXPos,iYPos){
  75. createjs.Tween.get(_oButton).to({x: iXPos, y: iYPos},1000, createjs.Ease.quadOut).call(function(){});
  76. };
  77. this.setX = function(iXPos){
  78. _oButton.x = iXPos;
  79. };
  80. this.setY = function(iYPos){
  81. _oButton.y = iYPos;
  82. };
  83. this.getButtonImage = function(){
  84. return _oButton;
  85. };
  86. this.pulseAnimation = function(){
  87. _oTween = createjs.Tween.get(_oButton).to({scaleX: _iScale*0.9, scaleY: _iScale*0.9},850, createjs.Ease.quadOut).to({scaleX: _iScale, scaleY: _iScale},650, createjs.Ease.quadIn).call(function(){
  88. _oParent.pulseAnimation();
  89. });
  90. };
  91. this.trebleAnimation = function(){
  92. _oTween = createjs.Tween.get(_oButton).to({rotation: 5},75, createjs.Ease.quadOut).to({rotation: -5},140, createjs.Ease.quadIn).to({rotation: 0},75, createjs.Ease.quadIn).wait(750).call(function(){
  93. _oParent.trebleAnimation();
  94. });
  95. };
  96. this.getX = function(){
  97. return _oButton.x;
  98. };
  99. this.getY = function(){
  100. return _oButton.y;
  101. };
  102. this._init(iXPos,iYPos,oSprite);
  103. return this;
  104. }