有没有办法以编程方式从Flash中删除所有本地共享对象?

时间:2008-11-26 22:12:12

标签: flex flash actionscript

我在flash中使用本地共享对象来存储大量用户数据,以及缓存从服务器获取的数据。

但是,我非常担心达到100kb的默认限制。因为100kb限制是针对整个域的,所以我担心多个本地共享对象的总和将总和超过100kb,但每个单独的共享对象将小于100kb。另外,我不能为我的生活找到一种方法来列出或清除给定域的所有本地共享对象。

假设您已经创建了具有随机名称的共享对象,向每个对象添加随机数据,这样您就达到了100kb的限制。如果您不知道每个对象的名称,有没有办法删除这些共享对象?或者你注定要弹出窗口要求用户增加共享对象的存储空间量?如果后者是真的,这似乎是Flash设计本地共享对象的一个​​主要缺陷。

1 个答案:

答案 0 :(得分:2)

这是否是一个缺陷是有争议的,但无论如何我相信你是正确的,没有办法做到这一点。它是通过设计实现的 - 默认情况下,SharedObjects只能由生成它们的SWF删除,或者如果指定了一个,则由指定的“localPath”中的SWF删除。该功能是专门设计的,以便来自给定域的一个SWF无法删除属于另一个SWF的SharedObject,除非您以这种方式进行设置。

毕竟,您通常不希望从citibank.com/adbanners提供的广告横幅能够从该网站的贷款模拟器(或其他)访问(在这种情况下删除)SharedObjects。< / p>