Y.Boy's Blog

Web Game,Flex,Flash,AIR,RIA,ActionScript,Pixel Bender

不同域的flash共享同一个域的SharedObject数据(跨域访问SharedObject)


        有时候,我们需要这样的需求:处于不同域的flash共享(读和写操作)同一个域下的SharedObject数据,可以理解为跨域访问SharedObject对象。例如,riahome.cn 域名下的flash创建了本地SharedObject对象,理论上这个SharedObject数据不能被其它域的flash所访问,实际上也是如此。但我希望 riahome.cn 域下的SharedObject数据能被指定域的flash访问,甚至希望能被所有其他域的flash访问。要实现这个功能,方法也很简单。既然其他域的flash不能直接访问 riahome.cn 的SharedObject数据,那干脆交由 riahome.cn 的flash直接访问,其他域的flash间接访问。其他域的flash需要把 riahome.cn 的flash加载进去,riahome.cn 的flash提供相关接口被其它flash调用。大致思路就是:A.swf 把 B.swf 加载进去,A.swf 访问 B.swf 的方法,B.swf 的方法是用来访问自己所属域的SharedObject数据的。你最起码要懂得:

  • 跨域加载swf。这个关系到安全沙箱了。但不要担心,因为你是被加载的一方,所以访问权都由你控制,你可指定某些域才能访问,也可以指定所有域都可访问。
  • 访问外部swf文件的方法。这个查一下官方的文档就好,不难。

        我的大致想法就是这样了,如果你有其他方法能实现这个功能,请不吝提出来。

标签:SharedObject, 安全沙箱, 本地共享对象, 跨域

评论


1
作者:  天堂左我往右 | 日期:  2010年1月31日 | 时间:  18:50

Y兄,和你的想法一样,呵呵,以前就这么搞过

回复他(她)

Y.Boy Reply:

那结果如何?可行性大不大?

回复他(她)

天堂左我往右 Reply:

没问题的,呵呵,一切ok

回复他(她)



发表评论

Note: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image