flash跨域问题解决


开发公司的某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.allowDomain('*');
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、还是不能访问滴盆友,请自行清空本地浏览器缓存及服务器端缓存。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值