LayaBox怎么预加载资源

 //预加载主游戏页面图片资源数组
        var res:Array<any> = [ 
         {url:"res/atlas/ui.json",type:Laya.Loader.ATLAS},
         {url:"res/atlas/ui.png",type:Laya.Loader.IMAGE},  //数据类型和资源地址
         {url:"res/atlas/bg.mp3",type:Laya.Loader.SOUND},
         {url:"res/atlas/hit.wav",type:Laya.Loader.SOUND}
        ];

          //设置progress Handler的第4个参数为true,根据加载文件个数获取加载进度
          Laya.loader.load(res,null,Laya.Handler.create(this,this.onProgress,null,false));

    }

代码如上,首先我们需要用一个数组变量来保存对应资源的url地址和类型type,然后调用Laya.loader.load()。

Laya.loader.load的参数如下:

  url:String — 地址
 
  type:String (default = null) — 类型,如果为null,则根据文件后缀,自动分析类型。
 
  cache:Boolean (default = true) — 是否缓存数据。
 
  group:String (default = null) — 分组。
 
  ignoreCache:Boolean (default = false) — 是否忽略缓存,强制重新加载

例子里面有一个回调函数

Laya.Handler.create(this,this.onProgress,null,false)

表示资源加载完毕以后会执行里面的onProgress方法

onProgress要自己新建,例如下面:

//主游戏界面加载完成后的回调函数
    public onProgress(pro:number):void{
            //console.log("加载了总文件的:"+pro*100+"%");
            this.progressBar.value=pro;
            if(this.progressBar.value==1)
            {
                //游戏主页面资源加载完成后执行这里的代码
                //console.log("游戏加载完成咯!!");
                //延迟1秒再显示游戏主页面
                this.progressBar.value=pro;
                Laya.timer.once(1000,this,this.onLoad);
                //this.progressBar.visible = false;
               // laya.media.SoundManager.playMusic("res/atlas/bg.mp3",0);       
            }

    }

 

posted @ 2016-12-12 16:25  CTO++  阅读(9689)  评论(0编辑  收藏  举报