tnt 框架中对楼主所说的问题进行了处理,每个独立UI可以单独管理资源,当UI关闭后,如果有正在加载的资源,会在加载完成后自动释放。可以作为参考看一下。
AssetLoader
AssetLoader
资源的加载释放管理,每个模块或者每个界面都可以实例化一个加载器,在退出模块或者关闭界面的时候一次性释放所依赖的资源,而不影响其他模块或界面的相同依赖资源。
AssetLoader
的使用基本与 引擎 Bundle 加载资源的方法一致。
在本框架中,每个弹窗都持有了一个 加载器 this.loader
,为当前弹窗加载资源时直接使用弹窗内置的加载器。
LoaderMgr
LoaderMgr
加载器管理类,通过任意键值获取或实例化一个加载器
全局共享的 AssetLoader
为 tnt.loaderMgr.share
,
如果想将一些资源常驻内存,可以使用 tnt.loaderMgr.get("persist").load(...);
,这里的 "persist"
为任意 key,只要不对 "persist"
这个加载器进行释放,里面加载的资源就会常驻于内存
如果想在任意位置访问场景持有的加载器,可以使用 tnt.loaderMgr.scene
。
ResourcesMgr
ResourcesMgr
加载器的封装,相当于 LoaderMgr
+ AssetLoader
的结合,只是为了方便使用
…
…