我正在尝试通过跨域的 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
不可用。