123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import LoadingView from "../loadingView/LoadingView";
- export default class SceneManager
- {
- private __assetBundleName:string;
- private __sceneName:string;
- private __switching:boolean;
- private get assetBundle():cc.AssetManager.Bundle{
- return cc.assetManager.getBundle(this.__assetBundleName);
- }
- /**
- * 切换场景
- * @param sceneName
- */
- Swicth(assetBundle:string,sceneName:string):void{
- LoadingView.single.Show();
- this.__assetBundleName=assetBundle;
- this.__sceneName=sceneName;
- this.__switching=true;
- if(this.assetBundle==null){
- cc.assetManager.loadBundle(this.__assetBundleName,this.OnAssetBundleLoadComplete.bind(this));
- }else{
- this.LoadScene();
- }
- }
- private OnAssetBundleLoadComplete(err:Error,asset:cc.AssetManager.Bundle):void{
- if(err){
- throw new Error("加载资源包出错:"+this.__assetBundleName);
- }else{
- this.LoadScene();
- }
- }
- private LoadScene():void{
- this.assetBundle.loadScene(this.__sceneName,null,this.OnProgressHandler,this.OnCompleteHandler);
- }
- private OnProgressHandler(finish: number, total: number, item: cc.AssetManager.RequestItem):void{
- LoadingView.single.UpdateProgress(finish/total);
- }
- private OnCompleteHandler(error: Error, sceneAsset: cc.SceneAsset):void{
- if(error!=null){
- throw new Error("场景加载错误:"+this.__sceneName);
- }
- cc.director.runScene(sceneAsset);
- LoadingView.single.Hide();
- }
- private static instance:SceneManager;
- public static get single(){
- if(this.instance==null){
- this.instance=new SceneManager();
- }
- return this.instance;
- }
- }
|