greg há 4 anos atrás
pai
commit
4719bd8ac5

+ 1 - 1
assets/scripts/engines/gui/list/ExportItem.ts

@@ -16,7 +16,7 @@ export class ExportItem extends Component {
         tooltip:"图片"
     })
     label:LabelComponent=null;
-
+    
     data:any;
 
     start () {

+ 14 - 0
assets/scripts/games/ui/fightings/FightingMediator.ts

@@ -158,6 +158,17 @@ export class FightingMediator extends GUIMediator {
     }
 
     private LoadAssets():void{
+        //先清理老资源
+        if(this.assetsRef){
+            let deps:string[];
+            this.assetsRef.forEach(element => {
+                deps=loader.getDependsRecursively(element);
+                loader.release(deps);
+            });
+            this.assetsRef.length=0;
+            this.assetsRef=null;
+        }
+
         let urls:string[]=[];
         //武器
         let weaponConfig:any=GameConfigManager.GetWeaponConfig(GameModel.single.currentWeaponId);
@@ -204,6 +215,9 @@ export class FightingMediator extends GUIMediator {
         this.onShowed=false;
         this.RemoveEvents();
         SoundManager.single.PlayMusic("sounds/main");
+        SoundManager.single.StopSound("Weapon");
+        SoundManager.single.StopSound("WeaponLeft");
+        SoundManager.single.StopSound("WeaponRight");
     }
 
     private AddEvents():void{

+ 11 - 3
assets/scripts/games/ui/prepares/PrepareMediator.ts

@@ -116,6 +116,7 @@ export class PrepareMediator extends GUIMediator {
 
     private modelView:ModelComponent;
 
+    private modelPrefab:Prefab;
     private prefabInstance:Node;
     private prefabModelComponent:ModelComponent;
 
@@ -137,7 +138,7 @@ export class PrepareMediator extends GUIMediator {
         
         SoundManager.single.PlayMusic("sounds/main");
     }
-    
+
     /**
      * 初始化枪的模型
      */
@@ -157,6 +158,7 @@ export class PrepareMediator extends GUIMediator {
             if(err){
                 console.error("加载武器出错");
             }
+            this.modelPrefab=prefab;
             this.prefabInstance=instantiate(prefab);
             this.prefabModelComponent=this.prefabInstance.getComponentInChildren(ModelComponent);
             //更换贴图
@@ -177,8 +179,14 @@ export class PrepareMediator extends GUIMediator {
 
         this.modelView.mesh=null;
         this.modelView.setMaterial(null,0);
-        this.prefabInstance.destroy();
-
+        if(this.prefabInstance){
+            this.prefabInstance.destroy();
+        }
+        if(this.modelPrefab!=null){
+            var deps=loader.getDependsRecursively(this.modelPrefab);
+            loader.release(deps);
+        }
+        
         this.modelView.node.active=false;
 
         this.weaponCellListView.onHide();