从flash as3调用javascript,它由不同的域托管

时间:2011-12-13 10:04:02

标签: javascript actionscript-3 cross-domain externalinterface

在sub.website.com上运行了一个javascript函数,在website.com中运行了一个flash组件。我使用object和embed标签将flash对象添加到sub.website.com,并且在某些时候我期望看到由flash对象触发的javascript函数的结果。 但我认为由于跨域的原因,它不允许我这样做。

我无法控制a.website.com,因为它对另一个网站的cname定义(我无法上传文件,但我可以添加额外的javascript函数)。

有什么解决方案吗?

1 个答案:

答案 0 :(得分:1)

我认为您必须使用从sub.website.com到a.website.com的Ajax调用。 这个ajax调用可以包含在sub.website.com上的javascript中,可以通过ExternalInterface在SWF中调用。

因此'sub'服务器上的SWF在'sub'服务器上调用Javascript函数,该函数触发对服务器'a'的Ajax调用,并且此服务器将一些数据(例如JSON)返回给服务器'sub'的Javascript 。所以服务器'sub'的Javascript可以通过ExternalInterface将数据返回给SWF。

有关外部接口的文档,请参阅adobe站点:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html