BuyTipPanel.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. var Event = require("Event");
  2. var BuyTipPanel = cc.Class({
  3. extends: cc.Component,
  4. properties: {
  5. IconSp:cc.Sprite,
  6. nameSp:cc.Sprite,
  7. Atlas:cc.SpriteAtlas,
  8. GoodsName:cc.Label,
  9. BuyNumLbl:cc.Label,
  10. Slider:cc.Slider,
  11. Progress:cc.ProgressBar,
  12. InPutBox:cc.EditBox,
  13. DesLbl:cc.Label,
  14. BuyNum:0,
  15. CanBuyNum:0,
  16. Data:null,
  17. },
  18. ShowPanel:function (data) {
  19. this.Data = null;
  20. this.CanBuyNum = Math.floor( cc.Mgr.UserDataMgr.Cash / data.price);
  21. if(this.CanBuyNum > cc.Mgr.UserDataMgr.WareHouseCapcity)
  22. {
  23. this.CanBuyNum = cc.Mgr.UserDataMgr.WareHouseCapcity;
  24. }
  25. this.IconSp.spriteFrame = this.Atlas.getSpriteFrame(data.icon);
  26. this.BuyNum = this.CanBuyNum;
  27. this.nameSp.spriteFrame = this.Atlas.getSpriteFrame(data.name);
  28. this.BuyNumLbl.string = this.CanBuyNum;
  29. this.InPutBox.string = this.CanBuyNum;
  30. this.DesLbl.string = cc.Mgr.global.FormatNum(this.CanBuyNum * data.price);
  31. this.Slider.progress = 1;
  32. this.Progress.progress = 1;
  33. this.Data = data;
  34. },
  35. OnSliderChange:function(){
  36. this.BuyNum = Math.floor(this.Slider.progress * this.CanBuyNum);
  37. this.Progress.progress = this.Slider.progress;
  38. ////cc.log("+++++++++++++++++++++" + this.price);
  39. this.BuyNumLbl.string = this.BuyNum;
  40. this.InPutBox.string = this.BuyNum
  41. this.DesLbl.string = cc.Mgr.global.FormatNum(this.BuyNum * this.Data.price);
  42. },
  43. OnInputBoxEnd:function(){
  44. if(this.InPutBox.string != "")
  45. {
  46. if(Number(this.InPutBox.string) != null)
  47. {
  48. if(Number(this.InPutBox.string) > this.CanBuyNum)
  49. {
  50. this.InPutBox.string = this.CanBuyNum;
  51. this.BuyNum = this.CanBuyNum;
  52. this.Progress.progress = 1;
  53. this.Slider.progress = 1;
  54. }
  55. else
  56. {
  57. this.BuyNum = Number(this.InPutBox.string);
  58. this.Slider.progress = this.BuyNum / this.CanBuyNum;
  59. this.Progress.progress = this.Slider.progress;
  60. }
  61. }
  62. }
  63. else
  64. {
  65. this.InPutBox.string = "0";
  66. this.BuyNum = 0;
  67. this.Progress.progress = 0;
  68. this.Slider.progress = 0;
  69. }
  70. this.DesLbl.string = cc.Mgr.global.FormatNum(this.BuyNum * this.Data.price);
  71. },
  72. ClickBuyBtn:function(){
  73. if(this.BuyNum <= 0)
  74. {
  75. cc.Mgr.AudioMgr.playSFX("click");
  76. return;
  77. }
  78. //判断是否已经买了物种物品
  79. if(cc.Mgr.UserDataMgr.CheckOwnedGoodsNum() == true)
  80. {
  81. this.DesLbl.string = "只能购买拥有5种物品";
  82. return;
  83. }
  84. if(cc.Mgr.UserDataMgr.WareHouseCapcity < this.BuyNum)
  85. {
  86. var param = {};
  87. param.forWhat = "";
  88. param.text = "仓库容量不够";
  89. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenCommonTip, param);
  90. return ;
  91. }
  92. cc.Mgr.UserDataMgr.WareHouseCapcity -= this.BuyNum;
  93. cc.Mgr.UserDataMgr.Cash -= (this.Data.price * this.BuyNum);
  94. var param = {};
  95. param.Num = this.BuyNum;
  96. param.price = this.Data.price;
  97. param.Id = this.Data.Id;
  98. var data = cc.Mgr.UserDataMgr.BuyGoods(param);
  99. //通知刷新现金
  100. cc.director.GlobalEvent.emit(cc.Mgr.Event.BuySuccess, data);
  101. this.ClosePanel();
  102. return this.Data.Id;
  103. },
  104. ClosePanel:function(){
  105. cc.Mgr.AudioMgr.playSFX("click");
  106. this.node.active = false;
  107. },
  108. });
  109. module.exports = BuyTipPanel;