![](/img/trans.png)
[英]SWF file displayed but xml data not loading into the swf embedded in aspx page
[英]swf not loading updated xml data
我有幾個使用AS 1/2來基於xml數據着色狀態圖的swf。 這工作了好幾年,但現在xml文件已更新。 瑞士法郎不會加載新信息。 就像他們做過一次一樣,現在它已經固定在石頭上了。 我已經搜索了一個星期,並嘗試了幾次緩存破壞程序,但是都沒有成功。 我嘗試過的大多數操作都是基於在xml加載語句中添加日期/時間戳。 這些要么無效,要么中斷了應用程序。 這是代碼:
var dp = new Array();
dp_xml = new XML();
dp_xml.ignoreWhite = true;
dp_xml.load('dplaws.xml');
dp_xml.onLoad = function(sucess) {
if (sucess) {
parseFile(dp_xml);
showArray();
}
};
function Map(state, category, qid, question, response) {
this.state = state;
this.category = category;
this.qid = qid;
this.question = question;
this.response = response;
if((substring(response,1,3)=="Yes") && (qid == "b")) {
myColor = new Color(state);
myColor.setRGB(0xA2B5CD);
} else if((substring(response,1,3)!="Yes") && (qid == "b")) {
myColor = new Color(state);
myColor.setRGB(0xcccccc);
}
}
function parseFile(xmlDoc_xml) {
temp = new Array();
for (var a = 0; a<xmlDoc_xml.firstChild.childNodes.length; a++) {
for (var b = 0; b<xmlDoc_xml.firstChild.firstChild.childNodes.length; b++) {
temp[b] = xmlDoc_xml.firstChild.childNodes[a].childNodes[b].firstChild.nodeValue;
}
n = new Map(temp[0], temp[1], temp[2], temp[3], temp[4]);
dp.push(n);
}
}
function showArray(){
for (var z = 0; z<dp.length; z++) {
trace(dp[z].state);
trace(dp[z].category);
trace(dp[z].question);
trace(dp[z].response);
trace(dp[z].qid);
}
}
感謝您的幫助,黛比
您需要注意三件事。
首先,您需要確保要加載最新版本的SWF文件以引用新的xml。 只需更改文件名或在swf擴展名的末尾添加緩存無效化查詢即可,例如map.swf?vers = 2 。
其次,您需要檢查Flash文件是否確實在檢索已更新的正確的新XML文件。
最后,我知道這聽起來很愚蠢,但是在瀏覽器中打開XML文件並確認它是正確的文件。 例如,直接查看它,例如www.mydomain.com/dplaws.xml 。 在服務器上的文件不是最新的或者服務器本身正在緩存文件的情況下,出現了很多次。 至少可以使用后者,然后將其隔離為服務器問題。
直接檢查XML文件,例如www.mydomain.com/dplaws.xml並添加一個查詢到結尾(例如此處(可以是任何內容)) www.mydomain.com/dplaws.xml?cache=test9393 。 附加查詢后,它應該從服務器獲取最新版本。
現在,一旦確認上述內容,請使用Chrome並打開開發人員工具 。 轉到“ 網絡”標簽,然后檢查您的閃光燈是否正在使用最新版本。 您可以看到,一旦SWF加載完畢,下一個查詢之一就是XML文件。 查看是否引用了新的XML,並附加了緩存無效化查詢。
當我按照上述步驟操作時,通常對我有用。 希望對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.