[转载]解决flash与js交互、flash跨域交互、flash跨域提交

时间:2023-02-04 01:48:14

http://blog.csdn.net/andyxm/article/details/5219919

我们引用本地flash,实现flash与js双向交互。

function thisMovie(movieName) {
     if (window.document[movieName]){
      return window.document[movieName];
    }else if (navigator.appName.indexOf("Microsoft")==-1){
      if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName];
    }else{
      return document.getElementById(movieName);
    }
     }

在提交数据时,flash无法跨域http访问。于是将flash资源放置该服务器下,接下来问题是flash与js不在一个域下,又有了交互跨域问题。解决办法是将原来

<embed>

<param name="allowScriptAccess" value="sameDomain" />

<embed src="" allowScriptAccess="sameDomain"/>

改为了可跨域访问

<embed>

<param name="allowScriptAccess" value="always" />

<embed src="" allowScriptAccess="always"/>

那如果我们用浏览器访问http://example1.com/index.php这个页面,在这个页面中引用了http:
//example2.com
/flash.swf这个flash文件,然后在flash代码中向http://example3.com/webservice.php发送HTTP
请求。

就需要在example3中添加crossdomain.xml,允许example2的访问。

<cross-domain-policy>

<allow-access-from domain="example2.com" />

</cross-domain-policy>