跨域加载资源的蛋疼

本文分享了在AS3开发中遇到的跨域资源加载问题及解决方案,包括使用LoaderContext确保资源正确加载以及解决跨域文件跳转带来的权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 as3开发中加载跨域资源没经验的话是个让人很捉急的事情,加班了三天总结了以下几点:

第一:在本地加载跨域文件和在服务器上加载跨域文件情况不一样,具体差别在于一句话,但是这句话费了一晚上才找出来。如下:
           var lc:LoaderContext = new LoaderContext(true);     就是这句话,及其重要。
           var loader:Loader = new Loader(); 
           var request:URLRequest = new URLRequest(url); 
           loader.load(request, lc);  
因为flash开发是开发好swf然后给后台人员嵌入网页的,在本地的时候没第一句话也无所谓,能加载跨域资源,但是嵌入网页放入服务器之后就不行了,而且不会提示什么错误,这样flash开发人员不知道的话以为是后台的错误,后台人员则以为是flash开发没做好,很容易起纠纷,而且非常蛋疼的事情是,用火狐浏览器调试看,里面是请求了资源,而且拿到了图片,你在swf中打印调试信息会发现progress也加载到一百,就是卡在把资源展现出来的地方。

第二:同样是跨域加载资源,在 同一个项目里面的,加载资源,代码和第一次加载资源一模一样,但是无论是打印调试信息还是在火狐上调试 和第一种一模一样,经过了试验了N中加载图片的方式还是不行之后就把重点放在权限上了,为什么第一次的跨域资源修改之后就能拿到呢,原因是加载到那个资源根目录下的crossdomain文件,第二次呢,在火狐上调试一看也能加载到crossdmain文件,这就奇怪了,代码一样,权限文件能取到,为什么还不能呢?y一晚上就过去了,第二天早上一切从0开始调试,突然发现跨域加载的权限文件时后台人员做了一次跳转,跳转到别的目录去取那个crossdomain文件,之前只看权限文件的内容没看地址,这时候看到了火狐浏览器的提示该文件是301状态,发现了属于跳转获取的,灵光一闪赶紧查资料,说是flash10之后 ,权限文件必须得放在资源的根目录之下,这种跳转获取不行。总算雨过天晴啊。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值