源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

132 lines
3.9 KiB

ExitTimeTip = ExitTimeTip or BaseClass(BaseView)
local ExitTimeTip = ExitTimeTip
--[[
使用范例
local data = {
time = time,--倒计时时间
use_action = 15,--最后几秒使用闪烁
-------------------------
call_back = function() --时间到期回调函数
self.model:Fire(BeachConst.REQ_QUIT_SCENE)
end,
exit_desc = "%s 自动退出",--不同退出提示
time_str = "秒后",--需要放大的时间链接字符串<size=130%><#ffffff>10秒后</color></size>击败小怪解除
}
GlobalEventSystem:Fire(EventName.OPEN_EXIT_TIME_TIP,data)
--]]
function ExitTimeTip:__init()
self.base_file = "common"
self.layout_file = "ExitTimeTip"
self.layer_name = "Main"
self.destroy_imm = true
self.change_scene_close = true
self.append_to_ctl_queue = false --是否要添加进界面堆栈
self.need_show_money = false --是否要显示顶部的金钱栏
-- self.is_set_zdepth = true
self.click_bg_toClose = false
------------------------
-- 一级全屏界面:
self.hide_maincancas = false --隐藏主界面
self.use_background = false --不一定显示遮罩
------------------------
CommonController.Instance:Fire(EventName.CLOSE_SPECIALTIPVIEW)--防止重叠
self.load_callback = function ()
self:LoadSuccess()
end
self.open_callback = function ( )
self:OpenSuccess()
end
self.close_win_callback = function ( )
self:Close()
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function ExitTimeTip:Open( data )
data.time = data.time or 10
self.data = data
self.data.end_time = data.time + TimeUtil:getServerTime() --把时间段转为时间戳,兼容计时器帧率不稳定的问题
self.data.exit_desc = data.exit_desc or "自动退出"
self.data.time_str = data.time_str or "秒后"
BaseView.Open(self)
end
function ExitTimeTip:LoadSuccess()
local nodes = {
"container/exitTimeText:tmp", "container:obj", "container/exitTimeBg:raw",
}
self:GetChildren(nodes)
lua_resM:setOutsideRawImage(self, self.exitTimeBg_raw, GameResPath.GetViewBigBg("special_tip_di_3"), false)
self:AddEvent()
-------------------------
SetSizeDelta(self.transform, ScreenWidth, ScreenHeight)
SetAnchoredPosition(self.transform, 0, 0)
end
function ExitTimeTip:AddEvent()
end
function ExitTimeTip:OpenSuccess()
self:UpdateView()
end
function ExitTimeTip:UpdateView()
self.clock_time = self.data.end_time - TimeUtil:getServerTime()
local use_action = self.data and self.data.use_action or 0
local call_back = self.data and self.data.call_back
SetVisibleByRotate( self.container.transform, self.clock_time > 0 )
-------------------------
local function clockFun()
self.clock_time = self.data.end_time - TimeUtil:getServerTime()
if self.clock_time >= 0 then
self.exitTimeText_tmp.text = string.format("<size=130%%><#ffffff>%s%s</color></size>%s",self.clock_time,self.data.time_str,self.data.exit_desc)
-------------------------
if (not self.is_action) and (self.clock_time <= use_action) then
self:StartExitAction()
end
else
if call_back then
call_back()
end
self:Close()
end
end
clockFun()
self.close_time_id = self.close_time_id or GlobalTimerQuest:AddPeriodQuest(clockFun, 0.5, -1)
end
--开始退出按钮闪烁动画
function ExitTimeTip:StartExitAction( )
self.is_action = true
if not self.container_canvas then
self.container_canvas = self.container:GetComponent("CanvasGroup")
end
self.container_canvas.alpha = 0
local function show_icon_func( percent )
self.container_canvas.alpha = percent
end
local show_update = cc.CustomUpdate.New(0.5,show_icon_func)
local function hide_icon_func( percent )
self.container_canvas.alpha = 1 - percent
end
local hide_update = cc.CustomUpdate.New(0.5,hide_icon_func)
local action = cc.Sequence.New(show_update,hide_update)
self:AddAction(cc.RepeatForever.New(action), self.container)
end
function ExitTimeTip:DestroySuccess( )
if self.close_time_id then
GlobalTimerQuest:CancelQuest(self.close_time_id)
self.close_time_id = nil
end
end