GetWayTipsView = GetWayTipsView or BaseClass(BaseView) function GetWayTipsView:__init() self.base_file = "common" self.layout_file = "GetWayTipsView" self.layer_name = "Top" self.destroy_imm = true self.use_background = false self.background_alpha = 0 self.pos_x = nil self.pos_y = nil self.type_id = nil self.item_list = {} --item列表 self.show_animation = false self.hide_background = false self:AddPreLoadList("common",{"GetWayTipsItem"}) self.load_callback = function() self:LoadSuccess() self:InitEvent() end self.open_callback = function() self:SetPosAndAnimation() self:InitViewInfo() end self.close_callback = function () end self.destroy_callback = function() self:Remove() end end function GetWayTipsView:SetPosAndAnimation() if self.transform and self.pos_x and self.pos_y then local pos = self.transform.localPosition if self.show_animation then self.transform.localPosition = Vector3(self.transform.localPosition.x, self.pos_y, self.transform.localPosition.z) self.canvasGroup.alpha = 0 local end_fun = function () end TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POS, Vector3(self.pos_x, self.pos_y, pos.z), 0.3, end_fun) TweenLite.to(self, self.canvasGroup,TweenLite.UiAnimationType.ALPHA, 1, 0.5) self.clickBg.transform.localPosition = Vector3(-self.pos_x, -self.pos_y, -pos.z) else self.transform.localPosition = Vector3(self.pos_x, self.pos_y, pos.z) self.clickBg.transform.localPosition = Vector3(-self.pos_x, -self.pos_y, -pos.z) end if self.hide_background and self.clickBg then self.clickBg:SetActive(false) end end end function GetWayTipsView:Open(type_id, x, y, show_animation, hide_background) self.type_id = type_id self.pos_x = x self.pos_y = y self.show_animation = show_animation self.hide_background = hide_background BaseView.Open(self) end function GetWayTipsView:Remove() for i,v in ipairs(self.item_list) do v:DeleteMe() v = nil end self.item_list = {} if self.event_id then GlobalEventSystem:UnBind(self.event_id) self.event_id = nil end if self.event_id2 then GlobalEventSystem:UnBind(self.event_id2) self.event_id2 = nil end if self.event_id3 then GlobalEventSystem:UnBind(self.event_id3) self.event_id3 = nil end end function GetWayTipsView:LoadSuccess() self.canvasGroup = self.transform:GetComponent("CanvasGroup") self.bg = self:GetChild("bg") self.ScrollView = self:GetChild("ScrollView/Viewport/Content") self.clickBg = self:GetChild("clickBg").gameObject self.desc_bg_img = self:GetChild("layout/desc_bg"):GetComponent("Image") lua_resM:setOutsideImageSprite(self,self.desc_bg_img,GameResPath.GetViewBigBg("goods_tool_tip_bg"),false) SetSizeDelta(self.bg, ScreenWidth, ScreenHeight) end function GetWayTipsView:InitEvent() local call_fun = function () if self then self:Close() GlobalEventSystem:Fire(EventName.CLICK_GET_WAY_CLOSE) end end self.event_id = GlobalEventSystem:Bind(EventName.CLICK_GET_WAY_ITEM, call_fun) self.event_id2 = GlobalEventSystem:Bind(EventName.GOODS_TOOLTIP_CLOSE, call_fun) self.event_id3 = GlobalEventSystem:Bind(CultureEvent.CLOSE_EQUIP_CULTURE_TIPS_VIEW, call_fun) AddClickEvent(self.clickBg,call_fun) end function GetWayTipsView:InitViewInfo() local goodsVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id) if goodsVo == nil then -- print("没有找到对应的物品vo----------:", self.type_id) return end self:ShowGainWay(goodsVo) end function GetWayTipsView:ShowGainWay(goodsVo) -- local list = ErlangParser:GetInstance():Parse(goodsVo.getway) -- goodsVo.getway = "1,2,3,4" local arr = Split(goodsVo.getway,",") -- print("--------------goodsVo.getway---:", goodsVo.getway) -- PrintTable(arr) for i,v in ipairs(self.item_list) do v:DeleteMe() v = nil end self.item_list = {} if not IsTableEmpty(arr) then for k,v in ipairs(arr) do local item = self.item_list[k] if item == nil then item = GetWayTipsItem.New(self.ScrollView) self.item_list[k] = item end item:SetPosition(0,-85*(k - 1)) item:SetData(v) end self.ScrollView.sizeDelta = Vector2(290,#arr*85) end end