过渡页面,加载进度

Posted zhangthree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过渡页面,加载进度相关的知识,希望对你有一定的参考价值。

local LoadingView = class("LoadingView",BaseUI)

--需要加载的plist文件
local PLIST_FILE = {
    "unit/base/unit23_dead" ,
    "unit/blue/blue_unit23_dead" ,
    "unit/green/green_unit23_dead" ,
    "unit/yellow/yellow_unit23_dead" ,

    "ani/unit1/unit1" ,
    "ani/unit_17/unit17" ,
    "ani/unit_17/unit_17_flash" ,

    "ani/attack/ATK_1" ,
    "ani/attack/ATK_2" ,
    "ani/attack/SPECIAL_1" ,

    "unit/base/unit1", 
    "unit/base/unit2",
    "unit/base/unit3",
    "unit/base/unit4",
    "unit/base/unit5",
    "unit/base/unit6",
    "unit/base/unit7",
    "unit/base/unit8",
    "unit/base/unit9",
    "unit/base/unit10",
    "unit/base/unit11",
    "unit/base/unit12",
    "unit/base/unit13",
    "unit/base/unit14",
    "unit/base/unit15",
    "unit/base/unit16",
    "unit/base/unit17",
    "unit/base/unit18",
    "unit/base/unit19",
    "unit/base/unit20",
    "unit/base/unit21",
    "unit/base/unit22",
    "unit/base/unit23",
    }

function LoadingView:ctor()
    -- LoadingView.super.ctor(self, 0, false,true)
    
    local bg = display.newSprite("UI/login_bg.png")
    bg:setAnchorPoint(cc.p(0, 0))
    self:addChild(bg)

    self.loadResNum = 0
    local loadingBg = cc.Sprite:createWithSpriteFrameName("loadgame_bg.png")
    loadingBg:setPosition(cc.p(display.cx, display.height / 10))
    self:addChild(loadingBg)

    local loading = cc.Sprite:createWithSpriteFrameName("loadgame_inner.png")--display.newSprite(loadStr)

    self.loadingBar = display.newProgressTimer(loading, cc.PROGRESS_TIMER_TYPE_BAR):addTo(self)
    self.loadingBar:setMidpoint(cc.p(0, 0))
    self.loadingBar:setBarChangeRate(cc.p(1, 0))
    self.loadingBar:setPercentage(0)
    self.loadingBar:setPosition(cc.p(0, 0))
    self.loadingBar:setPosition(cc.p(display.cx, display.height / 10))
    self:updateLoadRes()
end

function LoadingView:updateLoadRes()

    local updateTimes = 0
    local nowLoadNums = 0
    local function updateLoad(dt)
        updateTimes = updateTimes + 1
        if updateTimes > 20 and updateTimes % 3 == 0 then
            nowLoadNums = nowLoadNums + 1
            display.addSpriteFrames(PLIST_FILE[nowLoadNums]..".plist", PLIST_FILE[nowLoadNums]..".png", handler(self,self.loadResCallBack))
        end

        if #PLIST_FILE <= nowLoadNums then
            cc.vv.dump(" -- > stop update load res ... ")
            self:closeSchedule()
            --关闭加载层
            cc.vv.layerMgr:removeLayer("LoadingView")
        end
        
    end

    self.scheduleListener = cc.Director:getInstance():getScheduler():scheduleScriptFunc(updateLoad , 0 , false)
end

function LoadingView:closeSchedule()
    print("关闭调度器-1")
    if self.scheduleListener ~= nil then
        print("关闭调度器-2")
        cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.scheduleListener)
        self.scheduleListener = nil
    end
end

function LoadingView:loadResCallBack(texture2d)
    self.loadResNum = self.loadResNum + 1
    cc.vv.dump(self.loadResNum,"loadResNum")
    local nowPercent = math.min( 100,100*(self.loadResNum/#PLIST_FILE))
    self.loadingBar:setPercentage(nowPercent)
    dump(nowPercent, "nowPercent", 10)
    if nowPercent >= 100 then
        --资源加载完成
        cc.vv.dump("资源加载完成----")
    end
end

return LoadingView

 

以上是关于过渡页面,加载进度的主要内容,如果未能解决你的问题,请参考以下文章

当片段视图加载是异步任务的一部分时,如何在片段加载之前显示进度条?

用于 onActivityCreated 中通用图像加载器的片段中进度条的 NullPointerException

转---写一个网页进度loading

如何正确地将多个片段添加到片段过渡?

jQuery进度条加载直到页面重定向

如何重新加载圆形进度条