|
|
- -- @Author: HWR
- -- @Description: 风采弹出提示界面
- WardrobeTipsView = WardrobeTipsView or BaseClass(BaseView)
- local WardrobeTipsView = WardrobeTipsView
-
- function WardrobeTipsView:__init()
- self.base_file = "wardrobe"
- self.layout_file = "WardrobeTipsView"
- self.layer_name = "Top"
- self.destroy_imm = true
- self.use_background = false --全屏界面默认使用这个参数
-
- self.is_animating = false -- 是否在动画中
-
- self.hide_time = 2 -- n秒后播放界面隐藏动画
- self.receive_flag = nil -- 读取完界面数据后,用于发送领取协议的关键键值
- self.model = WardrobeModel:getInstance()
- self.model.tip_view_show = true
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:OpenSuccess()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function WardrobeTipsView:Open(tips_data)
- self.tips_data = tips_data
- BaseView.Open(self)
- end
-
- --重用界面,5秒后再销毁
- function WardrobeTipsView:ResetViewInfo(tips_data)
- self.tips_data = tips_data
- self.transform.anchoredPosition = Vector2(-3.5, 61.5)
- self.gameObject:SetActive(true)
-
- if self.delay_closeview_id then
- TimerQuest.CancelQuest(GlobalTimerQuest,self.delay_closeview_id)
- self.delay_closeview_id = nil
- end
- self:UpdateView() -- 更新数据
- self:StartCloseTimer() -- 开始对界面的关闭进行计时
- self:OpenAnimation() -- 播放打开界面的动画
- end
-
- function WardrobeTipsView:LoadSuccess()
- local nodes = {
- "go_btn/go_btn_text:tmp", "close_timer:tmp", "go_btn:obj",
- "type_name_text:tmp", "icon_small_image:img",
- "wardrobe_con/wardrobe_text:tmp", "wardrobe_con/wardrobe_up_text:tmp", "name_text:tmp", "wardrobe_con:obj",
- }
- self:GetChildren(nodes)
- self.canvasGroup = self.gameObject:GetComponent("CanvasGroup")
- self.transform.anchoredPosition = Vector2(-3.5, 61.5)
- end
-
- function WardrobeTipsView:AddEvent()
- local function click_event(target)
- self:ReceiveFunc()
- self:ClearHideTimer()
- self:AutoCloseFunc()
- if self.is_unlock then
- if self.is_unlock == 1 then
-
- else
- GlobalEventSystem:Fire(WardrobeConst.OPEN_WARDROBE_MAIN_VIEW, WardrobeConst.TabId.SHOP, self.is_unlock + 1)
- end
- end
- end
- AddClickEvent(self.go_btn_obj, click_event)
- end
-
- function WardrobeTipsView:OpenSuccess()
- self:UpdateView()
- self:StartCloseTimer()
- self:OpenAnimation() -- 播放打开界面的动画
- end
-
- function WardrobeTipsView:UpdateView()
- self.is_unlock = nil
- if self.tips_data.is_unlock then--如果是解锁商城的就有按钮
- self.go_btn_obj:SetActive(true)
- self.name_text_tmp.text = ""
- local cfg = Config.Wardrobeopen
- for i,v in ipairs(cfg) do
- if v.condition <= self.tips_data.stage then
- self.is_unlock = v.store_id
- end
- end
- if self.is_unlock == 1 then
- self.go_btn_text_tmp.text = "确定"
- else
- self.go_btn_text_tmp.text = "前往"
- end
- self.type_name_text_tmp.text = string.format("%s %s", HtmlColorTxt("解锁", ColorUtil.YELLOW_DARK), cfg[self.is_unlock].store_name)
- SetAnchoredPositionX(self.wardrobe_con, 44)
- else
- self.go_btn_obj:SetActive(false)
- self.type_name_text_tmp.text = string.format("%s %s", HtmlColorTxt("解锁", ColorUtil.YELLOW_DARK), self.model:GetWardrobeTypeName(self.tips_data.type))
- if self.tips_data.type == 9 or self.tips_data.type == 10 then--进阶和伙伴要去拿阶数
- self.name_text_tmp.text = string.format("%s %s阶", self.model:GetWardrobeTypeName(self.tips_data.type), self.tips_data.color)
- else
- local goods_name = GoodsModel:getInstance():getGoodsName(self.tips_data.id, false)
- if SubStringGetTotalIndex(goods_name) > 4 then
- goods_name = SubStringUTF8(goods_name, 1, 4) .. "..."
- end
- self.name_text_tmp.text = goods_name
- end
- SetAnchoredPositionX(self.wardrobe_con, 110)
- end
- self.wardrobe_up_text_tmp.text = self.tips_data.up_value
- self.wardrobe_text_tmp.text = string.format("风采值 %s", HtmlColorTxt(self.tips_data.sum_wardrobe_value, ColorUtil.YELLOW_DARK))
- local res_name = string.format("wardrobe_level%s", self.tips_data.stage)
-
-
- lua_resM:setOutsideImageSprite(self, self.icon_small_image_img, GameResPath.GetWardrobeImage(res_name), true)
- if self.delay_id then
- GlobalTimerQuest:CancelQuest(self.delay_id)
- self.delay_id = nil
- end
- local function delay_method( )
- SetSizeDeltaX(self.wardrobe_text, self.wardrobe_text_tmp.preferredWidth+1)
- end
- self.delay_id = setTimeout(delay_method, 0.01)
- end
-
- -- 开始界面关闭的倒计时
- function WardrobeTipsView:StartCloseTimer()
- self:ClearHideTimer()
- local end_time = self.hide_time + TimeUtil:getServerTime()
- local function hide_timer()
- local left_time = end_time - TimeUtil:getServerTime()
- if not self.tips_data.is_unlock then
- self.close_timer_tmp.text = ""
- else
- self.close_timer_tmp.text = left_time >= 0 and string.format("(<color=%s>%ss</color>后自动关闭)", ColorUtil.GREEN_DARK, math.ceil(left_time+1)) or ""
- end
- if left_time < 0 then
- self:ClearHideTimer()
- self:AutoCloseFunc()
- self:TimeOverFunc()
- end
- end
- hide_timer()
- self.hide_timer_id = GlobalTimerQuest:AddPeriodQuest(hide_timer, 0.1, -1)
- -- 设置动画标志量
- self.is_animating = true
- end
-
- -- 点击按钮后的响应
- function WardrobeTipsView:ReceiveFunc( )
-
- end
-
- -- 倒计时结束的响应
- function WardrobeTipsView:TimeOverFunc( )
-
- end
-
- function WardrobeTipsView:ClearHideTimer( )
- if self.hide_timer_id then
- GlobalTimerQuest:CancelQuest(self.hide_timer_id)
- self.hide_timer_id = nil
- end
- end
-
- function WardrobeTipsView:AutoCloseFunc( )
- local function callback()
- self:ClearHideTimer()
- self.gameObject:SetActive(false)
- local function delay_closeview( )
- BaseView.Close(self)
- end
- self.delay_closeview_id = setTimeout(delay_closeview, 5)
- -- 设置动画标志量
- self.is_animating = false
- -- 查看是否还没展示完成界面
- self.model:Fire(WardrobeConst.OPEN_WARDROBE_TIP_VIEW, true)
- end
- self:CloseAnimation(callback)
- end
-
- -- 播放打开界面的动画
- function WardrobeTipsView:OpenAnimation()
- self.canvasGroup.alpha = 0
- if self.alpha_anim_id then
- TweenLite.Stop(self.alpha_anim_id)
- self.alpha_anim_id = nil
- end
- self.alpha_anim_id = TweenLite.to(self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 1, 0.2)
- end
-
- -- 关闭(隐藏)界面的动画
- function WardrobeTipsView:CloseAnimation(callback)
- self.canvasGroup.alpha = 1
- if self.alpha_anim_id then
- TweenLite.Stop(self.alpha_anim_id)
- self.alpha_anim_id = nil
- end
- self.alpha_anim_id = TweenLite.to(self, self.canvasGroup,TweenLite.UiAnimationType.ALPHA, 0, 0.5)
- local pos_y = self.transform.anchoredPosition.y + 100
- if self.pos_id then
- TweenLite.Stop(self.pos_id)
- self.pos_id = nil
- end
- self.pos_id = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.ANCHORED_POSY, pos_y, 0.5, callback)
- end
-
- function WardrobeTipsView:DestroySuccess( )
- self.model.tip_view_show = false
- self:ClearHideTimer()
- if self.delay_closeview_id then
- TimerQuest.CancelQuest(GlobalTimerQuest,self.delay_closeview_id)
- self.delay_closeview_id = nil
- end
- if self.alpha_anim_id then
- TweenLite.Stop(self.alpha_anim_id)
- self.alpha_anim_id = nil
- end
- if self.pos_id then
- TweenLite.Stop(self.pos_id)
- self.pos_id = nil
- end
- if self.delay_id then
- GlobalTimerQuest:CancelQuest(self.delay_id)
- self.delay_id = nil
- end
- end
|