解决Flash加载外部数据的缓存问题

08年12月16日

采用flash读取外部数据无论是loadVars类还是MovieClipLoader类还是XML.load()都会碰到一个问题就是外部数据的缓存,原则上flash一般只会载入一次,之后的数据都会从浏览器的缓存读取,无论你怎么刷新浏览器都一样的效果。解决的办法就跟JS中的处理一样,在后面增加一个随机数,以保证每次都是重新获取数据,而不是缓存。


比如读取xml数据一般如下操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
onClipEvent (load) {
	//解析户型图xml
	//system.useCodepage=true; 
	//获取全局参数
	var myXML:XML = new XML();
	//myXML.load(_global.huxingXml);
	myXML.load(_global.huxingXml+"?end="+Math.random(1000000));
	myXML.ignoreWhite = true;
 
	myXML.onLoad = function(success) {
		if (success) {
			//-------------------------------读取XML文件中的内容-------------------------------------------------------
 
			_global.hxXml = myXML.firstChild.childNodes;
			call("onload");
 
		} else {
			trace("读取xml失败");
		}
	};
}

在后面加个后缀Math.random()。

相关文章:

  • Flash读取XML格式数据
  • actionscript数据交互的几种类型
  • 原文链接: http://yustar.joomlar.cn/archives/637.html
  • 转载文章请注明: Yustar’s Blog
  • [解决Flash加载外部数据的缓存问题]共有:3 条评论

  • jameslin :

    我用这个方法提示读取XML错误。
    您确认可行吗?

  • jameslin :

    使用了多种变量还是错误:
    Error opening URL “file:///D|/flash/g0001.xml?cachebuster=1266867363271″
    我用这种方法的:
    productsXML.load(”g0001.xml?cachebuster=” + new Date().getTime());
    出错了,用您的,也是出错。

  • yongqiang.dou :

    这个方法也不是万能的吧

  • 发表评论