【发布时间】:2010-11-05 12:53:35
【问题描述】:
我正在尝试通过 ExternalInterface 跨域启用 Javascript 和 Flash 之间的通信。当 Javascript 位于与 SWF 相同的域中时,它的效果很好。但在一种情况下,HTML 位于域 A,javascript 和 flash 都位于域 B。我已完成以下所有操作:
- 嵌入标签有
allowScriptAccess="always"(对象有它作为参数) - 我的 SWF 文件的 actioncipt 有
Security.allowDomain("*") - 我的 SWF 也调用了
Security.allowInsecureDomain("*") - 域 A 和域 B 都有一个
/crossdomain.xml文件,其中有allow-access-from domain="*"
SWF 可以在页面上调用 javascript,但是当我使用 Javascript 调用 ExternalInterface 公开的函数时,我得到了
在 NPObject 上调用方法时出错! [插件异常:Actionscript 中的错误。使用 try/catch 块来查找错误。]
这是 ActionScript 2,所以 ExternalInterface.marshallExceptions 不可用。
【问题讨论】:
-
您是否加载了多个 swf?还是域 A 上的 swf(带有 HTML)加载域 B 上的 swf?
-
Alex -- 好点,我没有提到。来自域 B 的 javascript 从域 B 加载了一个 SWF,而该 SWF 从域 B 加载了第二个 SWF。这种加载似乎有效,但我不能确定,因为我无法与 SWF 交互。
标签: javascript flash actionscript-2 externalinterface