//============================================================ // <T>加载设置信息。</T> // // @param xconfig 设置节点 //============================================================ public override void LoadConfig(FXmlNode xconfig) { foreach (FXmlNode xnode in xconfig.Nodes) { if (xnode.IsName("Property")) { string name = xnode.Get("name"); // 创建资源文件夹 switch (name) { case "resource_directory": FRsResourceFolder folder = new FRsResourceFolder(); folder.Directory = RMoCommon.ParseEnvironment(xnode.Text); _folders.Push(folder); break; case "export_directory": _exportDirectory = RMoCommon.ParseEnvironment(xnode.Text); break; case "merge_directory": _mergeDirectory = RMoCommon.ParseEnvironment(xnode.Text); break; } } } }
//============================================================ // <T>加载子目录。</T> //============================================================ protected bool LoadSubFolder(FDictionary <FRsResource> resources, FRsResourceFolder folder) { // 判断是否为空 if (null == folder) { return(false); } // 加载子目录 foreach (FRsResourceFolder subFolder in folder.Folders) { if (null != subFolder) { LoadSubFolder(resources, subFolder as FRsResourceFolder); } } foreach (FRsResource cfgObject in folder.Resources) { if (null != cfgObject) { //cfgObject.Tag = new SDsResourceTag(); //resources.Set(cfgObject.Code, cfgObject); } } return(true); }
//============================================================ protected void SelectResource(object value) { pnlInfo.SuspendLayout(); // 全部隐藏 qdsPicture.Visible = false; qdsAnimation.Visible = false; // 对象处理 if (value is FRsResourceFolder) { FRsResourceFolder folder = value as FRsResourceFolder; // 目录处理 labNameDisplay.Text = "目录:" + folder.Label; } else if (value is FRsResource) { FRsResource resource = value as FRsResource; resource.Open(); // 资源处理 switch (resource.TypeCd) { case ERsResource.Picture: labNameDisplay.Text = "图片:" + resource.Label; qdsPicture.Dock = DockStyle.Fill; qdsPicture.LoadResource(resource); qdsPicture.Visible = true; break; case ERsResource.Animation: labNameDisplay.Text = "动画:" + resource.Label; qdsAnimation.Dock = DockStyle.Fill; qdsAnimation.LoadResource(resource); qdsAnimation.Visible = true; break; case ERsResource.Sound: labNameDisplay.Text = "音效:" + resource.Label; //qucSound.Dock = DockStyle.Fill; //qucSound.Visible = true; break; case ERsResource.Music: labNameDisplay.Text = "音乐:" + resource.Label; //qucMusic.Dock = DockStyle.Fill; //qucMusic.Visible = true; break; case ERsResource.Swf: labNameDisplay.Text = "特效:" + resource.Label; //qucSwf.LoadResource(_resource); //qucSwf.Dock = DockStyle.Fill; //qucSwf.Visible = true; break; } } pnlInfo.ResumeLayout(); }
//============================================================ // <T>递归加载文件信息。</T> // // @param folders 文件集合 // @author TYFNG 1203024 //============================================================ protected void ScanFolder(FRsResourceFolder parentFolder) { // 处理所有子文件夹 FStrings directoryNames = RDirectory.ListDirectories(parentFolder.Directory); foreach (string directoryName in directoryNames) { if (-1 != directoryName.IndexOf(".svn")) { continue; } string fileName = directoryName.Substring(directoryName.LastIndexOf("\\") + 1); // 解析动画资源 if (fileName.StartsWith("RA-")) { string name = fileName.Substring(3); string fullName = name; string label = name; int codeIndex = name.IndexOf("-"); if (-1 != codeIndex) { name = name.Substring(0, codeIndex); } name = name.Replace(".", ""); // 创建图片资源 int code = RInt.Parse(name); FRsResourceAnimation animation = CreateResource(ERsResource.Animation, code) as FRsResourceAnimation; animation.Folder = parentFolder; animation.Code = code; animation.Name = name; animation.Label = label; animation.FullLabel = parentFolder.FullLabel + "\\" + label; animation.Keyword = label.Replace(".", ""); animation.Directory = directoryName; animation.Scan(); parentFolder.Resources.Push(animation); } else { // 创建子文件夹 FRsResourceFolder folder = new FRsResourceFolder(); folder.Label = fileName; folder.FullLabel = parentFolder.FullLabel + "\\" + fileName; folder.Directory = directoryName; parentFolder.Folders.Push(folder); // 扫描子文件夹 ScanFolder(folder); } } // 扫描文件夹 parentFolder.Scan(); }
//============================================================ // <T>建立资源目录。</T> //============================================================ protected void BuildResourceNode(FRsResourceFolder folder, TreeNodeCollection nodes) { // 建立所有子目录 if (!folder.Folders.IsEmpty()) { foreach (FRsResourceFolder subfolder in folder.Folders) { TreeNode node = new TreeNode(subfolder.Label); node.Tag = subfolder; nodes.Add(node); // 递归处理子目录 BuildResourceNode(subfolder, node.Nodes); } } // 建立所有子资源 if (!folder.Resources.IsEmpty()) { foreach (FRsResource resource in folder.Resources) { string typeFullName = ERsResource.ToFullName(resource.TypeName); TreeNode node = new TreeNode(resource.Label); if (resource.OptionValid) { node.ForeColor = Color.Black; node.ImageKey = typeFullName; node.SelectedImageKey = typeFullName; } else { node.ForeColor = Color.Gray; node.ImageKey = typeFullName + "D"; node.SelectedImageKey = typeFullName + "D"; } node.Tag = resource; nodes.Add(node); } } }