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、还是不能访问滴盆友,请自行清空本地浏览器缓存及服务器端缓存。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |