|
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|
using System;
|
|
using System;
|
|
using FairyGUI;
|
|
using FairyGUI;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
|
|
+using ET;
|
|
|
|
|
|
namespace GFGGame
|
|
namespace GFGGame
|
|
{
|
|
{
|
|
@@ -321,7 +322,23 @@ namespace GFGGame
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ public static void CheckDispsoe()
|
|
|
|
+ {
|
|
|
|
+ for (int i = _viewDic.Keys.Count - 1; i >= 0; i--)//不用foreach是因为:循环过程中可能会触发dispose,导致_viewDic.Keys变化,最终报错
|
|
|
|
+ {
|
|
|
|
+ int index = i > _viewDic.Keys.Count - 1 ? _viewDic.Keys.Count - 1 : i;//直接去最后一个,不用i是因为关闭一个界面可能会连带关闭其他界面,最终i比_viewDic.Keys.Count大而报错
|
|
|
|
+ KeyValuePair<string, UIView> kv = _viewDic.ElementAt(index);
|
|
|
|
+ if (kv.Value.isShowing == true) continue;
|
|
|
|
+ if (kv.Value.packageName == ResPathUtil.GetUIPackagePath("CommonGame") || kv.Value.packageName == ResPathUtil.GetUIPackagePath("Common") || kv.Value.packageName == ResPathUtil.GetUIPackagePath("Main")) return;//这几个包不释放
|
|
|
|
+ long currentTime = TimeHelper.ClientNowSeconds();
|
|
|
|
+ long closeTime = kv.Value.closeTime;
|
|
|
|
+ if (closeTime > 0 && currentTime - closeTime >= TimeUtil.SECOND_PER_MUNITE * 0.1)
|
|
|
|
+ {
|
|
|
|
+ kv.Value.closeTime = 0;
|
|
|
|
+ kv.Value.Dispose();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
private static object CreateViewInstance(string name)
|
|
private static object CreateViewInstance(string name)
|
|
{
|
|
{
|
|
// Debug.LogFormat("CreateViewInstance {0}", name);
|
|
// Debug.LogFormat("CreateViewInstance {0}", name);
|
|
@@ -371,5 +388,7 @@ namespace GFGGame
|
|
GRoot.inst.modalLayer.alpha = alpha;
|
|
GRoot.inst.modalLayer.alpha = alpha;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|