zoukankan      html  css  js  c++  java
  • 过渡页面,加载进度

    
    
    local BaseLayer = class("BaseLayer", function()
        return display.newLayer()
    end)
    
    function BaseLayer:ctor(...)
        self:setNodeEventEnabled(true)
        self:setTouchSwallowEnabled(false)
    end
    
    function BaseLayer:onEnter()
    
    end
    
    function BaseLayer:onExit()
        
    end
    
    function BaseLayer:onEnterBackground()
    
    end
    
    function BaseLayer:onEnterForeground()
        
    end
    
    return BaseLayer
    继承的BaseUI
    
    
    
    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
  • 相关阅读:
    冒泡排序
    选择排序
    JavaScript学习笔记---数组对象
    数字时钟
    操作字符串
    当前时间
    倒计时 定时器
    滚动文字
    查找替换文字
    JavaScript学习笔记---对象 时间对象 字符串对象
  • 原文地址:https://www.cnblogs.com/zhangthree/p/12455060.html
Copyright © 2011-2022 走看看