ChangeNum.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. cc.Class({
  2. extends: cc.Component,
  3. properties: {
  4. },
  5. Test:function(aNum)
  6. {
  7. this.schedule(function () {
  8. this.ShowNum(aNum)
  9. aNum+=50;
  10. },1,5,0);
  11. },
  12. start () {
  13. let NumNode = this.node.getChildByName('Num');
  14. //获取所有位数节点数组
  15. this.NumArray = NumNode.children;
  16. //当前位上的数值
  17. this.CurrentNumArray = [];
  18. this.MaxNum = 0;
  19. //获取最大值
  20. for(let i=0;i<this.NumArray.length;i++)
  21. {
  22. // cc.log('this.NumArray='+parseInt(this.NumArray[i].name)*9);
  23. this.CurrentNumArray.push(parseInt(this.NumArray[i].name));
  24. this.MaxNum += parseInt(this.NumArray[i].name)*9;
  25. }
  26. // cc.log('this.MaxNum ='+this.MaxNum );
  27. this.HideAllNum();
  28. this.Test(0);
  29. },
  30. ShowNum:function(Num)
  31. {
  32. // 超过最大值返回
  33. let NumString = Num.toString();
  34. var Numlen=NumString.length;
  35. if(Num> this.MaxNum) return;
  36. // this.HideAllNum();
  37. // for(let i=0;i<this.NumArray.length;i++)
  38. // {
  39. // let CurrentNum = this.CurrentNumArray[i];
  40. // let NumNode = this.NumArray[i];
  41. //
  42. // if(i<this.NumArray.length-Numlen)
  43. // {
  44. // CurrentNum = 0;
  45. // NumNode.active = false;
  46. // }
  47. // else
  48. // {
  49. // let DigitNum = NumString.substring(Numlen-this.NumArray.length-i-1,Numlen-this.NumArray.length-i);
  50. // CurrentNum = parseInt()
  51. // NumNode.active = true;
  52. // this.ConvertNumToTexture(CurrentNum,Num,NumNode);
  53. // }
  54. // }
  55. for(let i=0;i<Numlen;i++)
  56. {
  57. let CurrentNum = this.CurrentNumArray[Numlen-i];
  58. let DigitNum = NumString.substring(this.NumArray.length-i-1,this.NumArray.length-i);
  59. cc.log('x='+(this.NumArray.length-i-1)+';y='+(this.NumArray.length-i));
  60. // let NumNode = this.NumArray[Numlen-i];
  61. // NumNode.active = true;
  62. // this.ConvertNumToTexture(CurrentNum,DigitNum,NumNode);
  63. }
  64. // switch (Numlen) {
  65. // case 1:
  66. // this.Hundred.active = true;
  67. // this.Hundred.getComponent('ConvertNumToTexture').ConvertNumToTexture(num);
  68. // break;
  69. // case 2:
  70. // this.Hundred.active = true;
  71. // this.Tens.active = true;
  72. //
  73. // var TensNum=parseInt((num%100)/10);
  74. // var SingleNum=parseInt(num%10);
  75. //
  76. // this.Hundred.getComponent('ConvertNumToTexture').ConvertNumToTexture(TensNum);
  77. // this.Tens.getComponent('ConvertNumToTexture').ConvertNumToTexture(SingleNum);
  78. //
  79. // break;
  80. // case 3:
  81. // this.Hundred.active = true;
  82. // this.Tens.active = true;
  83. // this.Single.active = true;
  84. //
  85. // var HundredNum = parseInt(num/100);
  86. // var TensNum=parseInt((num%100)/10);
  87. // var SingleNum=parseInt(num%10);
  88. //
  89. // this.Hundred.getComponent('ConvertNumToTexture').ConvertNumToTexture(TensNum);
  90. // this.Tens.getComponent('ConvertNumToTexture').ConvertNumToTexture(TensNum);
  91. // this.Single.getComponent('ConvertNumToTexture').ConvertNumToTexture(SingleNum);
  92. //
  93. // break;
  94. // default:
  95. // }
  96. },
  97. HideAllNum:function(num)
  98. {
  99. for(let i=0;i<this.NumArray.length;i++)
  100. {
  101. let NumNode = this.NumArray[i];
  102. NumNode.active = false;
  103. }
  104. },
  105. ConvertNumToTexture:function(CurrentNum,Num,NumNode)
  106. {
  107. NumNode.setPosition(NumNode.position.x-(Num-this.CurrentNum)*41,NumNode.position.y);
  108. var aSprite = NumNode.getComponent(cc.Sprite);
  109. var FillStart = aSprite.fillStart = Num/10;
  110. this.CurrentNum = Num;
  111. }
  112. });