X

SharedObject 多文件实时共享

SharedObject 是个好东西,它跟html的cookie类似,都能在本地存储数据,但又比cookie强大,可以存储更多的类型。 OK,知道了SharedObject的用处,我们来玩点高级点的。

应用场景

本地有两个swf需要共享一些数据,比如说当前有多少个应用的副本打开了。

解决思路

  1. 首先我们在应用初始化的时候随机生成一个字符串,并将这个字符串写入一个公共的SharedObject。
  2. 不断的访问公共的sharedObject,以便获取当前有多少个实例。

遇到问题

当第二个swf也获取到公共的SharedObject后,第一个swf拥有公共SharedObject对失去对磁盘操作的权限(访问和修改)。
也可以这样描述:当多个swf对同一个SharedObject操作时,只有最后一个swf对SharedObject的操作的真的,之前的swf的SharedObject.flush()方法失效了。

解决问题方法

如果你看了上面的链接将会知道解决方法,不过我这里依然再写下来:

// 注意这里每次使用的时候要重新获取SharedObject
var so:SharedObject = SharedObject.getLocal("realTimeSharing", "/");

点击再打开一个页面以便查看效果

这是实时共享flash共享对象的demo,如果你看不到这个flash,请到文章页面查看!

示例源码下载

This post was last modified on 2019 年 03 月 04 日 00:57

View Comments (7)

This website uses cookies.