源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

116 行
2.8 KiB

FuliLimitPackageNumItem = FuliLimitPackageNumItem or BaseClass(BaseItem)
function FuliLimitPackageNumItem:__init(parent_wnd, prefab_asset, layer_name)
self.base_file = "fuli"
self.layout_file = "FuliLimitPackageNumItem"
self.is_delay_callback = true
self.data = false
self.time = false
self.loop_mgr = LoopScrowViewMgr.New()
self.item_list = {}
self.tween_id = false
self:Load()
end
function FuliLimitPackageNumItem:Load_callback()
local nodes = {
"ScrollView",
"ScrollView/Viewport/Content",
}
self:GetChildren(nodes)
self:InitEvent()
if self.need_refreshData then
self:SetData(self.data, self.time)
end
end
function FuliLimitPackageNumItem:InitEvent()
end
function FuliLimitPackageNumItem:SetData(data, time)
self.data = data
self.time = time
if self.is_loaded then
self:UpdateView()
else
self.need_refreshData = true
end
end
function FuliLimitPackageNumItem:__delete()
if self.loop_mgr then
self.loop_mgr:DeleteMe()
self.loop_mgr = nil
end
for i = 1,#self.item_list do
self.item_list[i]:DeleteMe()
end
self.item_list = {}
if self.tween_id then
TweenLite.Stop(self.tween_id)
end
self.tween_id = false
if self.timer_update then
TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_update)
self.timer_update = nil
end
end
function FuliLimitPackageNumItem:UpdateView()
self.data_list_num = self.time * 30 + self.data
for k = 1,3 do
local item = self.item_list[k]
if item == nil then
item = FuliLimitPackageNumTextItem.New(self.Content,nil,self.maskID)
self.item_list[k] = item
end
end
self.loop_mgr:Init(self.ScrollView,self.Content,1,15,25,function(item,index,realIndex )
self:OnInitializeItem(item,index,realIndex)
end, 0, 0)
self.loop_mgr:InitChildren(self.item_list, self.data_list_num)
self.loop_mgr:RestToBeginning()
self.loop_mgr:SetContentSizeData()
end
function FuliLimitPackageNumItem:OnInitializeItem(item,index,realIndex)
if item and realIndex > 0 and realIndex <= self.data_list_num then
if self.data_list_num == realIndex then
item:SetData(self.data)
else
item:SetData(realIndex%10)
end
if not self.tween_id then
local function end_func( )
if self.tween_id then
TweenLite.Stop(self.tween_id)
end
self.tween_id = false
if self.timer_update then
TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_update)
self.timer_update = nil
end
end
self.tween_id = TweenLite.to(self,self.Content, TweenLite.UiAnimationType.POSY, (self.data_list_num - 1) *(25), 3, end_func, TweenFunc.EASE_OUT, false)
local function timer_func()
if self.tween_id then
self.loop_mgr.mNeedToWrap = true
self.loop_mgr:WrapContent()
end
end
self.timer_update = TimerQuest.AddPeriodQuest(GlobalTimerQuest, timer_func, 0.02)
end
end
end