如何阻止SWF文件在本地缓存?

时间:2012-06-01 07:08:10

标签: flash actionscript-2 copy-protection

我不希望我的swf flash文件被缓存有没有办法可以从我的swf文件执行代码来执行缓存清理?例如,我发布了我的swf文件:www.newgrounds.com-我希望在加载时从我的swf文件中部署actionscript 2.0中的代码。并且该代码应该从用户缓存或Internet临时文件夹中清除加载的SWF文件,不会将其记录到黑客或复制到NTFS硬盘系统上,包括非法或错误地分发我的业务文件。

3 个答案:

答案 0 :(得分:1)

就我而言,我通过使用加载主SWF的自定义SWF加载程序解决了这个问题。自定义SWF加载程序使用自定义协议从服务器加载主SWF。这使得复制SWF更加困难。可以使用HTTP / HTTPS,但不应使用内置的actionscript HTTP类(例如,URLRequest,URLLoader),因为它们在本地缓存SWF文件。

答案 1 :(得分:0)

在嵌入代码中,在SWF文件名后添加随机参数。例如,如果您使用PHP:

http://example.com/yourfile.swf?random=<?php echo rand(); ?>

答案 2 :(得分:0)

我刚回答这个问题,但找不到我的帖子,所以我会重新回答。

为了控制缓存,您需要使用该文件发送正确的HTTP标头。可以将每个Web服务器配置为使用静态或动态内容发送适当的标头,过滤文件扩展名等。我说“控制”是因为您不希望用户重新下载文件,即使它没有更改 - 您也会滥用用户与服务器的连接。

您需要做的是确定您希望检查SWF文件的更改频率,并设置适当存储缓存的时间。

或者,您可以修改要在HTML包装器中使用的文件的名称。理想情况下,有SWF的版本,每当文件必须更新时,替换它并重命名。显然,这需要您处理包含SWF的HTML文件的标题,而不是SWF自己的标题。

http://www.mnot.net/cache_docs/这是一份很好的文件,它解释了如何处理标题,含义和后果。 必须阅读:)