// 程序入口
class GameMain{
public static GameView:GamView; //用一个公开的静态属性来保存GameView页面,方便全局调用,控制其销毁或者添加到画布
public static GameStart:GamStart; //用一个公开的静态属性来保存GameStart页面,方便全局调用,控制其销毁或者添加到画布
public static GameOver:GamOver; //用一个公开的静态属性来保存GameOver页面,方便全局调用,控制其销毁或者添加到画布
private progressBar:Laya.ProgressBar; //进度条属性
constructor()
{
Laya.init(640,960);
Laya.stage.scaleMode = Laya.Stage.SCALE_FIXED_WIDTH;
// Laya.stage.screenMode = Laya.Stage.SCREEN_NONE;
//Laya.stage.alignH = Laya.Stage.ALIGN_CENTER;
//Laya.stage.alignV = Laya.Stage.ALIGN_MIDDLE;
Laya.stage.bgColor = "#7a654f";
//开始加载进度条
//进度条资源加载
var pro_res:Array<any> = [
{url:"res/atlas/progress_time$bar.png",type:Laya.Loader.IMAGE}, //进度条的图片资源位置和类型
{url:"res/atlas/progress_time.png",type:Laya.Loader.IMAGE} //进度条的图片资源位置和类型
];
//加载完进度条后执行onProLoaded方法
Laya.loader.load(pro_res,Laya.Handler.create(this,this.onProLoaded));
//加载图片
// Laya.loader.load(res,Laya.Handler.create(this,this.onLoad)); //加载完以后会有一个回调函数
}
//加载进度条图片资源的同时,回调函数触发下面的方法加载主游戏资源
public onProLoaded():void{
//显示进度条图片
this.progressShow();
//预加载主游戏页面图片资源数组
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));
}
//显示开始游戏加载进度条
public progressShow():void{
//和text一样,需要先new一个进度条对象
this.progressBar = new Laya.ProgressBar("res/atlas/progress_time.png");
this.progressBar.width = 400;
this.progressBar.pos(130,500);
this.progressBar.sizeGrid = "5,5,5,5";
//当进度条发生变化的时候,我们需要下面的方法来监听其变化
this.progressBar.changeHandler = new Laya.Handler(this,this.onChange);
//添加进度条到舞台上
Laya.stage.addChild(this.progressBar);
}
//主游戏界面加载完成后的回调函数
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);
}
}
//进度条发生变化的时候触发下面的方法
public onChange(value:number):void{
console.log("进度: "+Math.floor(value*100)+"%");
}
//加载完成后的回调函数
public onLoad():void{
laya.media.SoundManager.playMusic("res/atlas/bg.mp3",0);
//移除进度条
Laya.stage.removeChild(this.progressBar);
// 实例化游戏开始界面
GameMain.GameStart = new GamStart(); //注意哦,这里的GameStart是静态属性,所以访问的时候不能用this了,只能用GameMain类,
Laya.stage.addChild(GameMain.GameStart);
}
}
new GameMain();