Esempio n. 1
0
        /// <summary>
        /// 单个子任务完成处理
        /// </summary>
        /// <param name="wwwObj"></param>
        /// <param name="param"></param>
        public void HandleDownloadOne(WWW wwwObj, object param)
        {
            if (wwwObj != null && wwwObj.error == null)
            {
                if (SaveToLocalOnFinish)
                {
                    SaveFile(wwwObj, currentAsset.Type);
                }
                onOneDoneCallback(wwwObj);
                this.onProgressCallback((int)(((index * 1.0f) / (len * 1.0f))) * 100);
            }
            else
            {
                Debuger.LogWarning("HttpService:Skiped the not exist file: index" + index + " url:" + currentAsset.Url);
                DList.Clear();
                IsBusy = false;
                onCompleteCallback(false);
                return;
            }

            index++;
            if (index < len)
            {
                currentAsset = DList[index];
                StartDownloadOne();
            }
            else
            {
                index = 0;
                DList.Clear();
                IsBusy = false;
                onCompleteCallback(true);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 开始下载一个资源队列
        /// </summary>
        /// <param name="dList">目标队列</param>
        /// <param name="onCompleteCallback">完成回调</param>
        /// <param name="onProgressCallback">总进度回调</param>
        /// <param name="onOneDoneCallback">单个任务完成回调</param>
        /// <param name="SaveToLocalOnFinish">完成时是否缓存到本地</param>
        public void StartDownload(List<AssetFile> dList, Action<bool> onCompleteCallback = null, Action<int> onProgressCallback = null, Action<object> onOneDoneCallback = null, bool SaveToLocalOnFinish = true)
        {
            if (IsBusy)
            {
                Debuger.Log("Queue is in downloading ,pls wiat it done ");
                return;
            }
            IsBusy = true;

            if (onCompleteCallback != null)
            {
                this.onCompleteCallback = onCompleteCallback;
            }
            else
            {
                this.onCompleteCallback = (bool n) => { };
            }
            if (onProgressCallback != null)
            {
                this.onProgressCallback = onProgressCallback;
            }
            else
            {
                this.onProgressCallback = (int n) => { };
            }

            this.onOneDoneCallback = onOneDoneCallback == null ? (object n) => { } : onOneDoneCallback;

            this.SaveToLocalOnFinish = SaveToLocalOnFinish;


            index = len = 0;
            DList = dList;
            len = DList.Count;
            this.currentAsset = DList[index];
            StartDownloadOne();
        }