AchieveMapDecoder.js 2.5 KB

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