|
|
- 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
|