You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.5 KiB

  1. -- 主界面
  2. local CreateRoomItemBase = class("CreateRoomItemBase", cc.UIView)
  3. --[[
  4. 一、构造函数传什么参数
  5. defaultValus :默认值,如果为空则从本地文件读取
  6. fileName :本地文件名
  7. 二、子游戏需要做什么
  8. 1、继承并重写 getRuleResult(),供外部获取最终数据
  9. 2、可以通过父类的 getDefaultValue() 方法获取默认值
  10. 3、在调用 getRuleResult()的时候要调用 saveDefaultValues() 保存最终数据
  11. --]]
  12. function CreateRoomItemBase:ctor(defaultValus, fileName)
  13. CreateRoomItemBase.super.ctor(self);
  14. self.fileName = fileName;
  15. self.defaultValus = defaultValus
  16. -- 如果没有传默认值,则从本地读取默认值
  17. if not self.defaultValus then
  18. self:loadDefaultValues();
  19. self.isCreateRoom = true
  20. end
  21. end
  22. function CreateRoomItemBase:getRuleResult()
  23. return {}
  24. end
  25. function CreateRoomItemBase:getDefaultValue(key)
  26. if self.defaultValus then
  27. return self.defaultValus[key]
  28. else
  29. return nil
  30. end
  31. end
  32. function CreateRoomItemBase:loadDefaultValues()
  33. local jsonString = loadStringFromFile(self.fileName)
  34. if jsonString then
  35. self.defaultValus = json.decode(jsonString) or {}
  36. else
  37. self.defaultValus = {}
  38. end
  39. end
  40. function CreateRoomItemBase:saveDefaultValues()
  41. if not self.isCreateRoom then
  42. return
  43. end
  44. local jsonString = json.encode(self.defaultValus or {})
  45. saveStringToFile(jsonString, self.fileName)
  46. end
  47. function CreateRoomItemBase:getLayoutContentSize()
  48. if self.ui then
  49. return self.ui:getContentSize()
  50. else
  51. return nil
  52. end
  53. end
  54. return CreateRoomItemBase