Exemplo n.º 1
0
        private void itemComplete(EventX e)
        {
            AssetResource resource = e.target as AssetResource;

            resource.removeEventListener(EventX.COMPLETE, itemComplete);
            resource.removeEventListener(EventX.FAILED, itemComplete);
            //resource.removeEventListener(AssetEvent.PROGRESS, itemProgress);
            int index = runningList.IndexOf(resource);

            if (index != -1)
            {
                runningList.RemoveAt(index);
            }

            if (isStart == false)
            {
                return;
            }
            running--;

            loaded = total - queue.Count;
            this.dispatchEvent(new EventX(EventX.PROGRESS, (float)loaded / total));

            Action <EventX> action = null;

            if (resultActions.TryGetValue(resource.id, out action))
            {
                action(e);
            }

            CallLater.Add(loadNext);
        }
Exemplo n.º 2
0
        private void itemComplete(EventX e)
        {
            AssetResource resource = e.target as AssetResource;

            AssetsManager.bindEventHandle(resource, itemComplete, false);
            resource.removeEventListener(EventX.PROGRESS, itemProgress);
            resource.removeEventListener(EventX.DISPOSE, itemComplete);

            runningList.Remove(resource);
            running--;
            Log("QuEnd: {0} {1},{2},{3}", running, e.type, resource.url, queue.Count);

            if (running < 0)
            {
                DebugX.LogError("queueLoader error runnig=" + running);
            }

            if (e.type != EventX.COMPLETE)
            {
                faildCount++;
                if (maxFailCount > 0 && faildCount > maxFailCount)
                {
                    this.simpleDispatch(EventX.FAILED, e);
                }
                DebugX.LogWarning("QuItemFailed:" + resource.url + ":" + e.type + " faildCount:" + faildCount + "/" + maxFailCount);
            }

            preProgress = 0.0f;
            loaded      = total - (queue.Count + running);
            //DebugX.Log("kk:" + (loaded) / (float)total);
            this.simpleDispatch(EventX.PROGRESS, loaded / (float)total);

            Action <EventX> action = null;

            string key = resource.url.ToLower();

            if (resultActions.TryGetValue(key, out action))
            {
                action(e);
            }

            _doNext();
        }
Exemplo n.º 3
0
        private void resourceDisposeHandle(EventX e)
        {
            AssetResource res = e.target as AssetResource;

            res.removeEventListener(EventX.DISPOSE, resourceDisposeHandle);

            string uri = res.id;

            if (_resourceMap.ContainsKey(uri))
            {
                _resourceMap.Remove(uri);
            }
        }
        private void manifesHandle(EventX e)
        {
            AssetResource resource = e.target as AssetResource;

            resource.removeEventListener(EventX.PROGRESS, progressHandle);
            AssetsManager.bindEventHandle(resource, manifesHandle, false);
            if (e.type != EventX.COMPLETE)
            {
                _data = null;
                resourceComplete(e.type);
                return;
            }
            QueueLoader queueLoader = new QueueLoader();

            queueLoader.retryCount = 3;
            queueLoader.addEventListener(EventX.COMPLETE, dependsHandle);
            if (isProgress)
            {
                queueLoader.addEventListener(EventX.PROGRESS, progressHandle);
            }
            assetBundleManifest = resource.data as AssetBundleManifest;
            string[] dependencies = assetBundleManifest.GetAllDependencies(dependKey);

            //Hash128 hash = assetBundleManifest.GetAssetBundleHash(dependKey);
            string        hashValue = null;
            string        hashKey   = null;
            AssetResource tempResource;

            foreach (string dependency in dependencies)
            {
                string url = manifesPrefix + dependency;
                string uri = manifesKey + "/" + dependency;
                //Debug.Log(dependency);
                hashValue = assetBundleManifest.GetAssetBundleHash(dependency).ToString();
                hashKey   = manifesKey + "_" + hashValue;
                if (resourceHash128Maping.TryGetValue(hashKey, out tempResource) == false)
                {
                    tempResource = AssetsManager.getResource(url, uri, LoaderXDataType.ASSETBUNDLE);
                    resourceHash128Maping.Add(hashKey, tempResource);
                }

                /*else if (url != tempResource.url)
                 * {
                 *  Debug.Log("redirect:" + url + " to:" + tempResource.url);
                 * }*/

                tempResource.retain();
                queueLoader.add(tempResource);
            }
            queueLoader.start();
        }
Exemplo n.º 5
0
        private void resourceDisposeHandle(EventX e)
        {
            AssetResource res = e.target as AssetResource;

            res.removeEventListener(EventX.DISPOSE, resourceDisposeHandle);

            string uri = res.url.ToLower();

            //DebugX.Log("assetDisposeAsset:" + uri);
            if (_resourceMap.ContainsKey(uri))
            {
                _resourceMap.Remove(uri);
            }
        }
Exemplo n.º 6
0
        public void _dispose(string url)
        {
            AssetResource res = null;

            //DebugX.Log("disposeAsset:"+url);
            url = url.ToLower();
            if (_resourceMap.TryGetValue(url, out res))
            {
                _resourceMap.Remove(url);

                res.removeEventListener(EventX.DISPOSE, resourceDisposeHandle);
                res.__dispose();
            }
        }
Exemplo n.º 7
0
        private void dependsHandle(EventX e)
        {
            currentProgress = 0.8f;
            float progress = (_totalDependCount - _needLoadedDependCount) / (float)_totalDependCount;

            simpleDispatch(EventX.PROGRESS, 0.7f * progress + 0.1f);

            AssetResource tempResource = e.target as AssetResource;

            AssetsManager.bindEventHandle(tempResource, dependsHandle, false);
            tempResource.removeEventListener(EventX.DEPEND_READY, dependsHandle);

            _needLoadedDependCount--;
            checkAllComplete();
        }
Exemplo n.º 8
0
        public void _dispose(string uri)
        {
            AssetResource res = null;

            if (_resourceMap.TryGetValue(uri, out res))
            {
                _resourceMap.Remove(uri);

                res.removeEventListener(EventX.DISPOSE, resourceDisposeHandle);
                res.__dispose();

                //trace("dispose",uri);
            }
            else
            {
                //RFTraceWarn(uri+" 不在AssetsManager里!");
            }
        }