CapsuleEggWarehouseView = CapsuleEggWarehouseView or BaseClass(BaseItem) local CapsuleEggWarehouseView = CapsuleEggWarehouseView function CapsuleEggWarehouseView:__init() self.base_file = "capsuleEgg" self.layout_file = "CapsuleEggWarehouseView" self.model = CapsuleEggModel:getInstance() self.bag_item_list = {} --背包物品列表 self.column_num = 9 --一行几个图标 self.defult_slot = 45 --默认最少生成空格数 self.warehouse_item_count = 0 --仓库物品数量 self:Load() end function CapsuleEggWarehouseView:Load_callback() self.nodes = { "ScrollView", "ScrollView/Viewport/Content", "ScrollView/Viewport/Content/item_con", "takeOutBtn:obj", } self:GetChildren(self.nodes) self.loop_mgr = LoopScrowViewMgr.New() self:AddEvents() if self.need_refreshData then self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007) end end function CapsuleEggWarehouseView:AddEvents( ) local on_click = function ( click_obj ) if self.takeOutBtn_obj == click_obj then --一键取出 self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17009) end end AddClickEvent(self.takeOutBtn_obj, on_click) --取出之后的处理 local function on_take_all() if self.is_loaded then self:UpdateView() end end self:BindEvent(self.model,CapsuleEggConst.TAKE_OUT_ALL_REWARD,on_take_all) --刷新仓库界面 local function on_update_warehouse_view() if self.is_loaded then self:UpdateView() end end self:BindEvent(self.model,CapsuleEggConst.UPDATE_WAREHOUSE_VIEW,on_update_warehouse_view) end function CapsuleEggWarehouseView:UpdateView( ) self.warehouse_data = self.model:GetWarehouseData() self.warehouse_item_count = #self.warehouse_data local total_num = 0 if self.warehouse_item_count > self.defult_slot then total_num = self.warehouse_item_count+(9-self.warehouse_item_count%9) else total_num = self.defult_slot end for k = 1,self.defult_slot do local item = self.bag_item_list[k] if item == nil then item = CapsuleEggWarehouseItem.New(self.item_con,nil,self.layer_name) item:SetVisible(false,true) self.bag_item_list[k] = item end end self.loop_mgr:Init(self.ScrollView,self.Content,self.column_num,84+17,84+6,function(item,index,realIndex ) self:OnInitializeItem(item,index,realIndex ) end) self.loop_mgr:InitChildren(self.bag_item_list, total_num) self.loop_mgr:RestToBeginning() self.loop_mgr:ForceUpdateCurrentItems() self.loop_mgr:SetContentSizeData() end function CapsuleEggWarehouseView:OnInitializeItem(item,index,realIndex) if item and realIndex > 0 and realIndex <= self.warehouse_item_count then item:SetData(self.warehouse_data[realIndex],realIndex) else item:SetData(nil) end end function CapsuleEggWarehouseView:SetData( ) if self.is_loaded then self.need_refreshData = false self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007) else self.need_refreshData = true end end function CapsuleEggWarehouseView:__delete( ) for k,v in pairs(self.bag_item_list) do v:DeleteMe() v = nil end self.bag_item_list = {} if self.loop_mgr then self.loop_mgr:DeleteMe() self.loop_mgr = nil end end