代码之家  ›  专栏  ›  技术社区  ›  dd .

加载外部数据时闪存CS4 IDE内部缓存

  •  1
  • dd .  · 技术社区  · 15 年前

    当从服务器URLVariables检索外部变量时,我的Flash卡在了第一个编译值上。每当我更新服务器值时,flash会编译第一个旧值。只有在我重启CS4之后,IDE值才会更新。是否有内部缓存?

    我的代码没有什么问题,因为它在我的mac电脑上运行得很好,但在pc上不行。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Triynko    13 年前

    它们存储在系统的“临时Internet文件”缓存(即缓存)中。我的默认浏览器是Firefox,但它们仍然存储在一个“ AppData\Local\Microsoft\Windows\Internet临时文件\目录.IE5 “”子文件夹。

    FileSystemWatcher watcher = new FileSystemWatcher( "C:\\", "*.swf" );
    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite;
    watcher.Changed += new FileSystemEventHandler(watcher_Changed);
    watcher.IncludeSubdirectories = true;
    watcher.EnableRaisingEvents = true;
    

    接下来,我在flashcs6中测试了一个从远程服务器加载外部SWF文件的程序。它首先使用URLLoader类获取文件的字节,然后调用加载程序实例的loadBytes方法来加载SWF的字节。(使用URLLoader是绕过本地安全沙盒限制的一种解决方法,否则会阻止远程代码加载到本地SWF的同一个应用程序域和安全域;这是我的代码库的一个要求,因为远程SWF使用在本地容器SWF中定义的类)。

    “watcher_Changed”事件处理程序列出了flashide的播放器访问或写入的文件,这就是结果。

    我的 集装箱SWF “basemovie3.swf”(主项目文件)从以下目录加载:

    "C:\Users\[your_username]\AppData\Local\Adobe\Flash CS6\en_US\Configuration\CodeModel\cm-cache\SwcCache\basemovie3.swc1272273593\library.swf"
    

    这个 “l003s.swf”(缓存的有问题的文件)是从以下目录加载的:

    "C:\Users\[your_username]\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\IGH0THHW\l003s[1].swf"
    

    所以你有了它。远程加载的SWF是从临时Internet文件缓存加载的。

    似乎清除文件的最佳方法是打开“开始”菜单并键入“临时”,您可以单击任何选项“更改Internet临时文件设置”、“删除Cookie或临时文件”或“删除浏览历史记录”。它们会把你带到临时互联网设置窗口,在那里你可以删除你的浏览历史记录和缓存。

        2
  •  2
  •   fenomas    15 年前

    这纯属猜测,但我怀疑Flash是通过操作系统发出请求的,结果被缓存到了其他地方。不管怎样,解决此类问题的一种常见方法是在请求中附加一个无意义的变量,就像从中加载数据一样 server.com/script.php?random=209327

    推荐文章