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 = "<color="..ColorUtil:GetColor(0)..">"..config.name.."</color>"
|
|
|
|
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
|