禁用as3缓存

时间:2015-01-27 11:27:08

标签: actionscript-3 caching

我有一个在flash播放器中运行的AS3应用程序,旨在刷新存储在服务器上的图像。每1秒钟,服务器将替换一个新图像。

要从服务器获取图像而不是从缓存中获取图像,我必须添加以使用随机数方法,如下所示:

loader = new URLLoader();
var request:URLRequest = 
new URLRequest(
   "http://www.theServer.com/myImage.png?random"+(Math.random() * 10000));
loader.load(request);

,整个刷新过程都有效。

但令人讨厌的是,这种方法会在临时文件夹中生成临时文件,这些文件正在增长和增长:

  

C:\ Users \用户MYNAME \应用程序数据\本地\微软\的Windows \ INetCache

有没有办法禁用缓存,因为可以使用Air? 我问这个是因为该应用程序是在带有Flash Player 10的嵌入式平台上运行,在该平台上可能无法访问Flash播放器设置。

问候。

1 个答案:

答案 0 :(得分:9)

感谢提示Vesper, 我终于找到了一种方法来禁用AIR和actionscript的缓存:

    function loadURLWitoutCaching(theURL:String):void
    {
        var _imgLoader:Loader       = new Loader();
        _imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
        _imgLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadingError);

        var header:URLRequestHeader = new URLRequestHeader("pragma", "no-cache");
        var request:URLRequest = new URLRequest(theURL);
        request.data = new URLVariables("cache=no+cache");
        request.method = URLRequestMethod.POST;
        request.requestHeaders.push(header);
        try {
            _imgLoader.load(request);
        } catch (error:Error) {
            trace("Unable to load requested document.");
        }
    }

    private function onLoadingError(e:IOErrorEvent):void
    {
        // Do something
    }

    private function onLoadComplete(evt:Event):void
    {
        // Do something
    }

我不确定“URLVariables”是强制性的,但它似乎有所帮助。

现在我看不到在“C:\ Users \ myName \ AppData \ Local \ Microsoft \ Windows \ INetCache”文件夹中缓存了更多法师。

祝你有个美好的一天。