public void LoadAsync(ResLoadInfo resLoadInfo) { if (resLoadInfo.mResPath == "") { AFLogger.e("资源路径为空,无法进行加载"); return; } ResInfo resInfo = ResManager.Instance.GetRes(resLoadInfo); if (resInfo != null && resInfo.State == ResState.Ready && (resInfo.ResObject.IsNotNull() || resInfo.ResStr.IsNotNullAndEmpty())) { resLoadInfo.mListener.InvokeGracefully(true, resInfo); } else if (resInfo == null) { resInfo = ResFactory.Create(resLoadInfo); //加入队列 if (resInfo.LoadAsync()) { ResManager.Instance.CacheResource(resLoadInfo.mResPath, resInfo); } } else { AFLogger.e("当前请求的资源正在加载,增加回调"); //当前请求的资源正在加载,增加回调 resInfo.RegisterListen(resLoadInfo.mListener); } }
public void LoadResAsyncForObj(ObjLoadInfo objLoadInfo) { ResInfo resInfo = ResManager.Instance.GetRes(objLoadInfo.mCRC); if (resInfo == null) { ResLoadInfo resLoadInfo = ResLoadInfo.Allocate(objLoadInfo); //资源没有加载 LoadAsync(resLoadInfo); resLoadInfo.Recycle2Cache(); } else if (resInfo.State != ResState.Ready) { //资源正在加载,是其他loader的异步加载 resInfo.RegisterListen(objLoadInfo.loadResCall); } else { //资源已经加载完成,开始回调 objLoadInfo.loadResCall(true, resInfo); } }