1.為了與xml文件的編碼保持一致,要記得用System.useCodepage 屬性,這樣就不容易出現(xiàn)亂碼問題。
2.如果xml內(nèi)容不是標(biāo)準(zhǔn)的,例如是用字符串拼湊起來(lái)的,帶有回車,換行等符號(hào),最好用XML.ignoreWhite 屬性,否則flash里的xml解析器會(huì)把這些符號(hào)當(dāng)成是xml的結(jié)點(diǎn)。
3.在flash里,xml里的結(jié)點(diǎn)值會(huì)被當(dāng)成一個(gè)結(jié)點(diǎn)來(lái)看帶。要找當(dāng)前結(jié)點(diǎn)之后,才能用nodeValue獲取結(jié)點(diǎn)值會(huì)。
4.flash的AS2.0不夠完善,用它解析xml,就不能像javascript那樣方便,例如javascript里可以用getElementById,getElementsByTagName等方法來(lái)查詢結(jié)點(diǎn),AS2.0則要麻煩了,需要用循環(huán)遍歷結(jié)點(diǎn),從中找到相應(yīng)的內(nèi)容。
5.獲取外部xml數(shù)據(jù),特別是外域xml數(shù)據(jù),要注意安全沙箱問題,里面有許多訪問權(quán)限問題需要注意。
6.如果flash讀取的XML文件如果體積過大,可能出現(xiàn)較長(zhǎng)等待時(shí)間,用以下方法可以實(shí)現(xiàn)進(jìn)度監(jiān)聽:
var fileXML = "abc.xml";
//XML進(jìn)度監(jiān)聽
function checkXMLProcess(xmlObj) {
var xLoaded = xmlObj.getBytesLoaded();
var xTotal = xmlObj.getBytesTotal();
xLoaded = (xLoaded == 0 || xLoaded == undefined) ? 1 : xLoaded;
xTotal = (xTotal == undefined) ? 999999 : xTotal;
var xPercent = Math.floor(100*(xLoaded/xTotal));
//trace(xPercent);
}
//XML調(diào)用
myXML.load(fileXML);
var xInterval = setInterval(checkXMLProcess, 100, myXML);
myXML.onLoad = function(success) {
if (success) {
clearInterval(xInterval);
//your actions
}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。