CarMapDecoder.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. var CarData = require("CarData");
  2. var CarMapDecoder = cc.Class({
  3. extends: cc.Component,
  4. properties: {
  5. jsonName:"car",
  6. carList:{
  7. default:[],
  8. type:[CarData],
  9. },
  10. },
  11. //解析数据
  12. DecodeJson:function (event) {
  13. //cc.log("===解析汽车数据===");
  14. var self = this;
  15. self.reCb = event;
  16. cc.loader.loadRes("json/"+self.jsonName, function (error, obj) {
  17. if(error)
  18. {
  19. //cc.log("+++解析出错,查下json+++" + error);
  20. self.reCb(false);
  21. return;
  22. }
  23. var jsonRoot = obj.json.car;
  24. //cc.log("===数据长度===" + jsonRoot.length);
  25. for (var i = 0; i < jsonRoot.length; i++) {
  26. var carD = new CarData();
  27. carD.Id = jsonRoot[i].Id;
  28. carD.icon = jsonRoot[i].icon;
  29. carD.name = jsonRoot[i].name;
  30. carD.price = jsonRoot[i].price;
  31. carD.addBonus = jsonRoot[i].addBonus;
  32. carD.addHp = jsonRoot[i].addHp;
  33. carD.addDate = jsonRoot[i].addDate;
  34. self.carList[i] = carD;
  35. }
  36. self.reCb(true);
  37. });
  38. },
  39. //通过名字拿到当前的数据 不建议用,你要用我也没办法
  40. getDataByName:function (name) {
  41. var data = null;
  42. for (var i = this.carList.length - 1; i >= 0; i--) {
  43. if(name == this.carList[i].name)
  44. {
  45. data = this.carList[i];
  46. break;
  47. }
  48. }
  49. return data;
  50. },
  51. //通过itemid获取数据
  52. getDataByItemId:function(itemId){
  53. var data = null;
  54. for (var i = this.carList.length - 1; i >= 0; i--) {
  55. if(itemId == this.carList[i].Id)
  56. {
  57. data = this.carList[i];
  58. break;
  59. }
  60. }
  61. return data;
  62. },
  63. getJsonLength:function(){
  64. return this.carList.length
  65. },
  66. getDataList:function(){
  67. return this.carList;
  68. },
  69. });
  70. module.exports = CarMapDecoder;