CountTime = CountTime or BaseClass(BaseItem)
|
|
function CountTime:__init(parent)
|
|
self.parent = parent
|
|
self.base_file = "common"
|
|
self.layout_file = "CountTime"
|
|
self.end_time = 0
|
|
self.prefix = ""
|
|
self.font_color = "#EFD29AFF"
|
|
self.font_size = 28
|
|
self:Load()
|
|
end
|
|
|
|
function CountTime:Load_callback()
|
|
self.CountTime = self:GetChild("CountTime"):GetComponent("Text")
|
|
self.bg_image = self:GetChild("image"):GetComponent("Image")
|
|
if self.abName and self.resName then
|
|
self:SetBgImage(self.abName, self.resName, self.width, self.height, self.image_type)
|
|
end
|
|
self.CountTime.fontSize = self.font_size
|
|
if self.need_refreshData then
|
|
self:SetData(self.end_time)
|
|
end
|
|
self:InitEvent()
|
|
end
|
|
|
|
function CountTime:InitEvent()
|
|
|
|
end
|
|
|
|
function CountTime:SetData( endTime )
|
|
self.end_time = endTime
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self.CountTime.text = ""
|
|
self:SetCountTime(self.endTime)
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function CountTime:SetCountTime()
|
|
if self.end_time <= TimeUtil:getServerTime() then
|
|
self:CancelTime()
|
|
self.CountTime.text = ""
|
|
else
|
|
self:StartTime()
|
|
self:RefreshTime()
|
|
end
|
|
end
|
|
function CountTime:StartTime()
|
|
self:CancelTime()
|
|
local function on_time()
|
|
self:RefreshTime()
|
|
end
|
|
self.ac_time_id = TimerQuest.AddPeriodQuest(GlobalTimerQuest, on_time, 1, -1)
|
|
end
|
|
|
|
function CountTime:RefreshTime()
|
|
local left_time = self.end_time - TimeUtil:getServerTime()
|
|
if left_time <= 0 then
|
|
self.CountTime.text = ""
|
|
self:CancelTime()
|
|
if self.end_callback then
|
|
self.end_callback()
|
|
end
|
|
return
|
|
end
|
|
local time_text = self:GetTimeText(left_time)
|
|
self.CountTime.text = time_text
|
|
end
|
|
|
|
function CountTime:GetTimeText(time)
|
|
|
|
local dateStr = math.floor(time / 60 / 60 / 24)
|
|
local hoursStr = math.floor(time / 60 / 60) % 24
|
|
local minutesStr = math.floor(time / 60) % 60
|
|
local secondStr = time % 60
|
|
|
|
local str
|
|
if dateStr > 0 then
|
|
str = string.format("<color=%s>%s天%s时%s分</color>", self.font_color, dateStr, hoursStr,minutesStr)
|
|
else
|
|
if tonumber(hoursStr) < 10 then hoursStr = 0 .. hoursStr end
|
|
if tonumber(minutesStr) < 10 then minutesStr = 0 .. minutesStr end
|
|
if tonumber(secondStr) < 10 then secondStr = 0 .. secondStr end
|
|
str = "<color="..self.font_color..">" .. hoursStr .. ":" .. minutesStr .. ":" .. secondStr .. "</color>"
|
|
end
|
|
return self.prefix..str
|
|
end
|
|
|
|
function CountTime:SetBgImage(abName,resName,width,height,image_type)
|
|
self.abName = abName
|
|
self.resName = resName
|
|
self.width = width
|
|
self.height = height
|
|
self.image_type = image_type
|
|
if self.is_loaded then
|
|
lua_resM:setImageSprite(self, self.bg_image,abName,resName,setNativeSize)
|
|
if width and height then
|
|
SetSizeDelta(self.bg_image.transform, width, height)
|
|
end
|
|
if image_type then
|
|
self.bg_image.type = image_type
|
|
end
|
|
end
|
|
end
|
|
|
|
function CountTime:SetPrefix(str)
|
|
self.prefix = str
|
|
if self.is_loaded then
|
|
self:RefreshTime()
|
|
end
|
|
end
|
|
|
|
function CountTime:SetTextColor(color_str)
|
|
self.font_color = color_str
|
|
if self.is_loaded then
|
|
self:RefreshTime()
|
|
end
|
|
end
|
|
|
|
function CountTime:SetFontSize(size)
|
|
self.font_size = size
|
|
if self.is_loaded then
|
|
self.CountTime.fontSize = self.font_size
|
|
end
|
|
end
|
|
|
|
function CountTime:SetEndCallBack(callback)
|
|
self.end_callback = callback
|
|
end
|
|
|
|
function CountTime:SetGetTimeTextFunc(func)
|
|
self.GetTimeText = func
|
|
end
|
|
|
|
function CountTime:CancelTime()
|
|
if self.ac_time_id then
|
|
TimerQuest.CancelQuest(GlobalTimerQuest, self.ac_time_id)
|
|
self.ac_time_id = nil
|
|
end
|
|
end
|
|
|
|
function CountTime:__delete( )
|
|
self:CancelTime()
|
|
end
|