![](/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.