GetPicTips = GetPicTips or BaseClass(BaseView) local GetPicTips = GetPicTips function GetPicTips:__init() self.base_file = "common" self.layout_file = "GetGoodsTips" self.layer_name = "Activity" self.open_wnd_anim = 0 self.use_background = true self.click_bg_toClose = true self.is_set_zdepth = true self.item_list = {} self.load_callback = function () self:LoadSuccess() self:SetPosition() end self.open_callback = function () self:OpenView() end self.close_callback = function () end self.destroy_callback = function () self:Remove() end end function GetPicTips:LoadSuccess() self.layout = self:GetChild("layout") self.bg = self:GetChild("layout/Window2") self.closeBtn = self:GetChild("layout/Window2/windowCloseBtn").gameObject self.name = self:GetChild("layout/name"):GetComponent("Text") self.content_parent = self:GetChild("layout/itemScrollView/Viewport/Content") self.icon_tra = self:GetChild("layout/award") self.icon_go = UiFactory.createChild(self.icon_tra,UIType.Image) self.icon_img = self.icon_go.transform:GetComponent("Image") self.icon_item = AwardItem.New(self:GetChild("layout/award")) self:InitEvent() end function GetPicTips:InitEvent() local function onBtnClickHandler(target) if target == self.closeBtn then self:Close() end end AddClickEvent(self.closeBtn, onBtnClickHandler, 1) end function GetPicTips:SetPosition() if self.pos_x and self.pos_y then local layout_width = self.bg.sizeDelta.x local layout_height = self.bg.sizeDelta.y local x,y = ScreenToViewportPoint(self.pos_x,self.pos_y) x = x - 300 y = y - 100 if x < layout_width - 50 then x = layout_width - 50 end if x + layout_width > ScreenWidth then x = ScreenWidth - layout_width - 80 end if y < layout_height - 200 then y = layout_height - 200 end self.layout.anchoredPosition = Vector2(x,y) end end function GetPicTips:Open(pic_id, x, y) self.pic_id = pic_id self.pos_x = x self.pos_y = y BaseView.Open(self) end --加载可添加的item function GetPicTips:OpenView() self.icon_item:SetGoodsIcon(24030002,true) self.icon_item:SetBgShow(0) --lua_resM:setOutsideImageSprite(self,self.icon_img,GameResPath.GetGoodsIcon(24030002),true) for i, v in ipairs(self.item_list) do v:SetVisible(false) end local function callback() self:Close() end local config = Config.Pic[self.pic_id] if config then self.name.text = ""..config.name.."" if config.get_way then local list_1, list_2 = {}, {} local getway = ErlangParser:GetInstance():Parse(config.get_way) for i, v in ipairs(getway) do local main = tonumber(v[1]) local sub = tonumber(v[2]) print(main,sub) if main == 132 then table.insert(list_1, v) elseif main and sub then local cfg = OpenFun.GetFunCfg(main, sub) if cfg then if RoleManager.Instance.mainRoleInfo.level < cfg.openLv then table.insert(list_2, v) else table.insert(list_1, v) end else print("=================== can't find config, fun id is ", main, sub) end end end for i, v in ipairs(list_1) do self.item_list[i] = self.item_list[i] or GetPicItem.New(self.content_parent) self.item_list[i]:SetVisible(true) self.item_list[i]:SetData(v, self.pic_id, callback) end local count = #list_1 for i, v in ipairs(list_2) do self.item_list[count + i] = self.item_list[count + i] or GetPicItem.New(self.content_parent) self.item_list[count + i]:SetVisible(true) self.item_list[count + i]:SetData(v, self.pic_id, callback) end end end end function GetPicTips:Remove() for i, v in ipairs(self.item_list) do v:DeleteMe() v = nil end self.item_list = {} if self.icon_item then self.icon_item:DeleteMe() self.icon_item = nil end if self.icon_go then destroy(self.icon_go,true) end end