我有一个嵌入到 facebook 新闻提要中的 flash swf 对象。除了 swf 文件本身,我无法控制任何东西。它托管在我们的服务器上,我需要能够读取我们主要网站设置的 cookie。
我能找到的所有内容都在谈论使用外部 javascript 来读取和设置 cookie,但我想从 flash 本身内部进行。
我有一个嵌入到 facebook 新闻提要中的 flash swf 对象。除了 swf 文件本身,我无法控制任何东西。它托管在我们的服务器上,我需要能够读取我们主要网站设置的 cookie。
我能找到的所有内容都在谈论使用外部 javascript 来读取和设置 cookie,但我想从 flash 本身内部进行。
实际上,您可以使用 ExternalInterface 做的事情比人们意识到的要多得多。在 AS3 中定义您的函数,然后将其作为 ExternalInterface.call 中的参数传递给 ExternalInterface。我用它作为主类的属性构建了一个简单的 AS3 项目。
private var myTestJS:String = "function myTest(parameter){alert(parameter);return parameter;}";
和 this 在构造函数中
var mycookievalue:String = ExternalInterface.call(myTestJS, "Yay for ExternalInterface");
构建一个快速项目,对其进行调试,您将看到警报被调用以及 mycookievalue 被正确设置。现在,您只需将我的测试函数替换为您的 js 代码即可获取 cookie。
Flash Player 无法访问浏览器 cookie。ExternalInterface 方法是让 JavaScript 为您执行此操作的技巧。
Flash Player 可以访问共享对象,类似于 Flash Player 的 cookie 版本;但通常 Flash 和浏览器不共享 cookie。