Ejemplo n.º 1
0
        private void OnResCompleted(bool result, IRes res)
        {
            TreeNode <NodeData> node = FindNode(LoadUrlHelper.AssetUrl2NodePath(res.Url), jsonTree.Head);

            if (result)
            {
                node.Data.State = NodeDataState.Downloaded;
            }
            else
            {
                node.Data.State = NodeDataState.Unload;
            }
            dirView.UpdateItem(node.Data.Name, node.Data.State);
        }
Ejemplo n.º 2
0
        private void ParseLoadJson(bool result, IRes res)
        {
            string path = LoadUrlHelper.JsonUrl2NodePath(res.Url);
            TreeNode <NodeData> node = FindNode(path, jsonTree.Head);

            if (!result)
            {
                node.Data.State = NodeDataState.Unload;
                return;
            }
            if (res.Datas == null)
            {
                return;
            }
            string str = Encoding.UTF8.GetString(res.Datas);

            if (str != null)
            {
                path = path + ResSuffix;
                LoadUrlHelper.CreateDirIfNotFound(path, true);

                JsonData datas = JsonParser.GetData(str);
                node.Data.State = NodeDataState.Downloaded;
                TraverseCreate(datas, node, true, NodeDataState.Loading);
                //Check(jsonTree.Head);

                List <TreeNode <NodeData> > childs = node.Childs;

                if (childs != null && childs.Count > 0)
                {
                    string[] urls = new string[childs.Count];

                    for (int i = 0; i < childs.Count; i++)
                    {
                        urls[i] = LoadUrlHelper.GetAssetUrl(path + '/' + childs[i].Data.Name);
                    }
                    LoadAssets(urls, node.Data.Name + ResSuffix);
                }
                ShowNodeDirItems();
            }
        }
Ejemplo n.º 3
0
        public void LoadTree(TreeNode <NodeData> node)
        {
            if (node.Data.State == NodeDataState.Unload)
            {
                List <TreeNode <NodeData> > loads = new List <TreeNode <NodeData> >();
                TraverseSelect(node, loads);
                GenericTree <NodeData> .Traverse(node, (nd) => nd.Data.State = NodeDataState.Loading);

                string[] urls = new string[loads.Count];
                for (int i = 0; i < loads.Count; i++)
                {
                    urls[i] = LoadUrlHelper.GetJsonUrl(GetPathWithoutRoot(loads[i]) + suffix);
                }
                ILoader loader = DownloadManager.Instance.GetDownloader(node.Data.Name, urls, ResType.Json, ParseLoadJson);
                loader.RegisterEvent(progressCtl.LoaderFinish);
                if (loads.Count > 0)
                {
                    progressCtl.AddLoader(loader);
                    Debug($"新增{loads.Count}个请求");
                }
            }
        }