ActionScript 3 SharedObjects不会在不同的swfs中持久存在?

时间:2010-10-20 19:58:12

标签: flash actionscript cookies shared-objects

我正在服务两个不同的swfs,它们读取和写入同一个SharedObject变量。 SharedObject变量是一个数字,每个swf检查该数字以确保它没有使用相同的数字两次。然后它存储它选择的最后一个数字。这样两个swfs都不应该使用相同的数字两次,无论它们加载的是哪个顺序。

如果我反复加载其中一个swfs,则永不旋转两次。但是,当在swfs之间来回切换时,有时会重复该数字。 SharedObjects应该是Flash Player的全局,那么为什么会这样呢?

由于

2 个答案:

答案 0 :(得分:3)

SharedObjects是特定于文件名和特定于位置的 根路径是:

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\

但是对于www.example.com/res/flash/file1.swf和www.example.com/res/flash/file2.swf,它将是:

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\www.example.com\res\flash\file1.swf\

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\www.example.com\res\flash\file2.swf\

答案 1 :(得分:3)

实际上,共享对象被赋予了自己的文件夹,以便它们不会与同名的另一个SO发生冲突。如果您希望多个SWF访问单个SO,则需要为SO指定实际路径,而不是允许Flash为您创建一个。这会强制SWF读/写相同的SO。

这篇文章包含更深入的解释和一些不同的解决方案:

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d80.html