加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash跨域问题解决

发布时间:2020-12-15 06:58:33 所属栏目:百科 来源:网络整理
导读:开发公司的某flash页面应用,初涉swf文件的html页面调用,开发过程中不可避免滴出现了跨域问题。 开发工具:FlexBuilder3,?FlashCS3,语言ActionScript 3.0 应用简介:需要由flash前端按照算法选择相应的图片信息,由RUBY端生成图片,发送至新浪围脖。 所遇

开发公司的某flash页面应用,初涉swf文件的html页面调用,开发过程中不可避免滴出现了跨域问题。
开发工具:FlexBuilder3,?FlashCS3,语言ActionScript 3.0
应用简介:需要由flash前端按照算法选择相应的图片信息,由RUBY端生成图片,发送至新浪围脖。

所遇问题:
1、本地无法测试加载swf文件,由于html位于swf上层,加载之时报错,无法找到相应的swf文件,最初的SwfLoader加载使用相对路径data/swf/xxx.swf加载;

2、添加crossdomain.xml文件之后测试,无果;
3、继续处理,在createComplete事件中及SwfLoader的Init事件之内,,加入域允许并载入跨域文件:
Security.allowDomain('*');
Security.loadPolicyFile('http://xxx.xxxxx.net/crossdomain.xml');
使用FF测试,依旧访问不到原始swf文件;
4、绝杀技,Loader加载,使用LoaderContent内容解决跨域,Loader使用绝对路径加载
Security.loadPolicyFile('http://xxx.xxxx.net/crossdomain.xml');
_loader = new Loader();
var aPolce:LoaderContext = new LoaderContext(true);
_loader.load(new URLRequest('http://xxx.xxxx.net/images/maimeng/data/swf/daoShu.swf'),aPolce); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadSwfComplete);
_loader.contentLoaderInfo.addEventListener(Event.INIT,onDaoshuSwfInit);
测试之后,问题搞定,跨域问题由此解决。
总结:flash跨域一直以来都是很头大的问题,解决方案步骤:
1、在访问服务器上及测试服务器根目录下放置crossdomain.xml文件;
2、若条件允许,将html与swf文件置于同一级目录之下;
3、使用Loader加载swf,设置LoaderContnent;
4、还是不能访问滴盆友,请自行清空本地浏览器缓存及服务器端缓存。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读