/// <summary> ///通过xml路径及keyAttr属性获取vo传递给callBack回调.(如果该xml文件还未加载,调用此函数可触发其加载及解析).wsy 2013/3/28 ///当keyAttr="[...]"时,返回该xml的所有解析数据. /// </summary> public void GetVO(string xmlPath, string keyAttr, GetVODelegate callBack) { if (dicVO.ContainsKey(xmlPath)) { if (callBack != null) { callBack(GetVO(xmlPath, keyAttr)); } } else { if (dicReadFunc.ContainsKey(xmlPath)) { if (ResManager.Instance.ContainsRes(xmlPath)) { WWW wwwObj = ResManager.Instance.GetRes(xmlPath); ReadXml(xmlPath, wwwObj.text); if (callBack != null) { callBack(GetVO(xmlPath, keyAttr)); } } else { ResManager.Instance.GetRes(xmlPath, Loaded); if (callBack == null) { return; } GetVORecord temp = new GetVORecord(keyAttr, callBack); if (dicCallBack.ContainsKey(xmlPath)) { dicCallBack[xmlPath].Add(temp); } else { List <GetVORecord> list = new List <GetVORecord> (); list.Add(temp); dicCallBack.Add(xmlPath, list); } } } else { Debug.LogWarning("Xml error:\"" + xmlPath + "\" not Regsiter!"); } } }
public GetVORecord(string keyAttr, GetVODelegate callBack) { this.keyAttr = keyAttr; this.callBack = callBack; }