如何使用as3缓存图像?

时间:2010-11-24 00:10:02

标签: xml flash caching urlrequest

这是我在StackOverFlow中的第一篇文章,我给你带来了一个让我的开发团队感到高兴的问题。

我们正在一个项目中,使用独立的FlashPlayer作为新闻显示器。 新闻源是从ASP.Net请求返回的动态XML,并在Windows XP上运行。

问题是: - 显示器在总线屏幕上运行,有时互联网连接失败,但我们仍需要继续显示已下载新闻的图像。当我们手动将字符串放在URLRequest上时,它可以工作。图像从服务器下载,由IE8缓存,如果互联网消失,则从缓存重新加载。但是,当我们从de XML动态检索图像url并将URLRequest方法放入其中时,从缓存重新加载不起作用。

例如。 1 - 静态字符串工作

var pictureUrl:String = "http://www.server-domain/image.jpg"
public var loader:Loader;
loader.load(pictureUrl);

结果:加载图像,显示,保存在缓存中,如果互联网连接失败,则从缓存重新加载。

例如。 2 - 动态字符串不工作

var pictureXmlList:XMLList = xml.item.image as XMLList;
var pictureUrl:String = pictureXmlList[0] as String;
public var loader:Loader;
loader.load(pictureUrl);

结果:加载图片,显示,保存在缓存中,如果互联网连接失败,请勿从缓存中重新加载。

IOError: [IOErrorEventType="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2036"]

1 个答案:

答案 0 :(得分:0)

您可以尝试的一件事是使用Flash的缓存(称为“本地共享对象”)而不是依赖浏览器的缓存 -

http://www.bestflashanimationsite.com/tutorials/4/

你可以在那里找到一些建议。这样它就不必拉入XML文件来获取URL - 你将把它放在内存中。

我不确定这对你有没有帮助,但它至少应该扩大你的选择范围! :)