TextRoller.lua 1.08 KB
cc.exports.TextRoller = class("TextRoller")

TextRoller.jumpCnt = 10;
TextRoller.nowCnt = 0;

TextRoller.txt = nil;
TextRoller.startNum = 0;
TextRoller.endNum = 0;
TextRoller.intervalNum = 0;

function TextRoller:update()
    if self.nowCnt < self.jumpCnt then
        self.startNum = self.startNum + self.intervalNum;
        self.txt:setString(self.startNum);
        self.nowCnt = self.nowCnt + 1;
        self.txt:runAction(cc.Sequence:create(cc.DelayTime:create(0.05),cc.CallFunc:create(handler(self,self.update))))
    else
        self.txt:setString(self.endNum);
    end
end

function TextRoller:ctor(_txt,_startNum,_endNum)
    self.txt = _txt;
    self.startNum = _startNum;
    self.endNum = _endNum;
    
    if math.abs(self.endNum - self.startNum) < self.jumpCnt then
        self.jumpCnt = self.endNum - self.startNum;
    end
    
    self.intervalNum = math.floor((self.endNum - self.startNum)/self.jumpCnt);
    self.nowCnt = 0;
    
    self:update();
    self.txt:runAction(cc.Sequence:create(cc.DelayTime:create(0.05),cc.CallFunc:create(handler(self,self.update))))
end

return TextRoller