CGfxButton.js 3.1 KB

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