require("Base/BasePanel") ItemBoxDropPopup = Inherit(BasePanel) local this = ItemBoxDropPopup --初始化组件(用于子类重写) function this:InitComponent() this.spLoader = SpriteLoader.New() this.mask = Util.GetGameObject(this.transform, "mask") this.dropGrid=Util.GetGameObject(this.transform, "bg/grid") end --绑定事件(用于子类重写) function this:BindEvent() Util.AddClick(this.mask, function() this:ClosePanel() end) end --添加事件监听(用于子类重写) function this:AddListener() end --移除事件监听(用于子类重写) function this:RemoveListener() end local itemListPrefab={} --界面打开时调用(用于子类重写) function this:OnOpen(rewardGroup) local winData={} for i = 1, #rewardGroup do winData[i]={} winData[i].allWeight=0 winData[i].itemList={} local rewardItems= ConfigManager.GetConfigData(ConfigName.RewardGroup,rewardGroup[i]).RewardItem for j = 1, #rewardItems do local rewardItemConfig=ConfigManager.GetConfigData(ConfigName.RewardItemConfig,rewardItems[j]) winData[i].allWeight=winData[i].allWeight+rewardItemConfig.Chance local itemInfo={} itemInfo.weight=rewardItemConfig.Chance itemInfo.itemId=rewardItemConfig.ItemId itemInfo.randomMax=rewardItemConfig.RandomMax winData[i].itemList[j]=itemInfo end end local index=1 for i = 1, #winData do for j = 1, #winData[i].itemList do local itemData=winData[i].itemList[j] if itemData.randomMax>0 then local view= SubUIManager.Open(SubUIConfig.ItemView, this.dropGrid.transform) view.gameObject.name = "frame"..index itemListPrefab[index] = view index=index+1 view:OnOpen(false,{itemData.itemId,1},1.15,true,false,false,self.sortingOrder) local str=string.format("获取概率:%s%%",itemData.weight/ winData[i].allWeight*100) view:ResetName(str) end end end end --界面关闭时调用(用于子类重写) function this:OnClose() if #itemListPrefab > 0 then for i = 1, #itemListPrefab do destroy(itemListPrefab[i].gameObject) end end itemListPrefab = {} end --界面销毁时调用(用于子类重写) function this:OnDestroy() this.spLoader:Destroy() if #itemListPrefab > 0 then for i = 1, #itemListPrefab do destroy(itemListPrefab[i].gameObject) end end itemListPrefab = {} end return this