BarrageItem = BarrageItem or BaseClass()
|
|
|
|
function BarrageItem:__init(parent,prefab,recycle_callback)
|
|
local go = newObject(prefab)
|
|
local label = go:GetComponent("Text")
|
|
local transform = go.transform
|
|
transform:SetParent(parent)
|
|
transform.localScale = Vector3.one
|
|
self.gameObject = go
|
|
self.transform = transform
|
|
self.label = label
|
|
self.width = 0
|
|
self.end_call_back = recycle_callback
|
|
end
|
|
|
|
function BarrageItem:SetData(data)
|
|
self.label.text = data.str
|
|
self.width = self.label.preferredWidth
|
|
self.duration = data.duration or 5
|
|
end
|
|
|
|
function BarrageItem:Fire()
|
|
local posY = BarrageManager:getInstance():GetRandomFirePosY()
|
|
local half_screen_width = BarrageManager:getInstance().width/2
|
|
self.transform.localPosition = Vector3(half_screen_width, posY, 0)
|
|
self.tween_play = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSX, -half_screen_width-self.width, self.duration, function()
|
|
if self.end_call_back then
|
|
self.end_call_back(self)
|
|
end
|
|
end, TweenFunc.LINEAR)
|
|
end
|
|
|
|
function BarrageItem:StopRunning()
|
|
if self.tween_play then
|
|
TweenLite.Stop(self.tween_play)
|
|
self.tween_play = nil
|
|
end
|
|
end
|
|
|
|
function BarrageItem:__delete()
|
|
self:StopRunning()
|
|
end
|