源战役客户端
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.

87 lines
2.1 KiB

  1. CSMainAppointTab = CSMainAppointTab or BaseClass(BaseItem)
  2. local CSMainAppointTab = CSMainAppointTab
  3. function CSMainAppointTab:__init()
  4. self.base_file = "csMain"
  5. self.layout_file = "CSMainAppointTab"
  6. self.model = CSMainModel:getInstance()
  7. self:Load()
  8. end
  9. function CSMainAppointTab:Load_callback()
  10. self.nodes = {
  11. "bg:obj", "select:obj", "red:obj", "tabName:tmp",
  12. }
  13. self:GetChildren(self.nodes)
  14. self:AddEvents()
  15. if self.need_refreshData then
  16. self:UpdateView()
  17. end
  18. if self.need_reclick then
  19. self:OnClick(self.click_index)
  20. end
  21. end
  22. function CSMainAppointTab:AddEvents( )
  23. local on_click = function ( click_obj )
  24. if self.gameObject == click_obj then
  25. if self.in_select then return end
  26. self.model:Fire(CSMainConst.ON_CLICK_APPOINT_TAB,self.index)
  27. end
  28. end
  29. AddClickEvent(self.gameObject, on_click)
  30. --事件绑定:点击自身item处理
  31. local click_func = function(id)
  32. self:OnClick(id)
  33. end
  34. self:BindEvent(self.model, CSMainConst.ON_CLICK_APPOINT_TAB, click_func)
  35. end
  36. function CSMainAppointTab:UpdateView( )
  37. self.tabName_tmp.text = self.data.name
  38. end
  39. function CSMainAppointTab:OnClick(click_index)
  40. self.click_index = click_index
  41. if self.is_loaded then
  42. self.need_reclick = false
  43. if self.click_index == self.index then
  44. self.in_select = true
  45. self.bg_obj:SetActive(false)
  46. self.select_obj:SetActive(true)
  47. self.tabName_tmp.color = ColorUtil:ConvertHexToRGBColor("ffffff")
  48. SetTMPSharedMaterial(self.tabName_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7OutlineBlueTab)
  49. if self.call_back then
  50. self.call_back(self.index)
  51. end
  52. else
  53. self.in_select = false
  54. self.bg_obj:SetActive(true)
  55. self.select_obj:SetActive(false)
  56. self.tabName_tmp.color = ColorUtil:ConvertHexToRGBColor("7d91ac")
  57. SetTMPSharedMaterial(self.tabName_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7FFDefault)
  58. end
  59. else
  60. self.need_reclick = true
  61. end
  62. end
  63. function CSMainAppointTab:SetData( data,index,call_back)
  64. self.data = data
  65. self.index = index
  66. self.call_back = call_back
  67. if self.is_loaded then
  68. self.need_refreshData = false
  69. self:UpdateView()
  70. else
  71. self.need_refreshData = true
  72. end
  73. end
  74. function CSMainAppointTab:__delete( )
  75. end