倒计时进度条
Progress.lua文件
local Progress = class("Progress", function(background, fillImage)
local progress = display.newSprite(background)
local fill = display.newProgressTimer(fillImage, display.PROGRESS_TIMER_BAR)
fill:setMidpoint(CCPoint(0, 0.5))
fill:setBarChangeRate(CCPoint(1.0, 0))
fill:setPosition(progress:getContentSize().width/2, progress:getContentSize().height/2)
progress:addChild(fill)
fill:setPercentage(100)
progress.fill = fill
return progress
end)
local scheduler = import("src/framework/scheduler.lua")
function Progress:ctor()
end
function Progress:setProgress(progress)
self.fill:setPercentage(progress)
end
--node 要添加timeProgress的node,zorder z轴优先级,background 进度条背景,fillImage进度条图片,callback progress=0时回调函数
function Progress:createTimeProgress(node,zorder,background,fillImage,callback)
local per = 100
local progress = Progress.new(background,fillImage)
:pos(display.cx,display.top)
:zorder(zorder)
:addTo(node)
local sharedScheduler = cc.Director:getInstance():getScheduler()
local handle = sharedScheduler:scheduleScriptFunc(function()
per = per -0.1
progress:setProgress(per)
if per <= 0 then
--显示时间aover 重新开始
callback()
print("unSchedule")
end
end,0.01,false)
scheduler.performWithDelayGlobal(function()
scheduler.unscheduleGlobal(handle)
end, 20)
return handle
end
return Progress