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
|