flash不能使用加载进来的swf的库中的类名的可能原因

做flash开发的时候,如果选择swf文件作为资源文件的话,很多时候需要根据库中的类名来创建资源中的实例,例如一个怪物的动画(MovieClip)。

按照正常状况,只要加载到对应的swf而且这个swf在允许的沙箱安全域的时候是能正常创建这些资源的实例的。

但是有些时候会出错, 程序就会报"变量 xxx 未定义"等错误信息

 

出现这个错误是很烦人的,首先要确认是否真的加载到了这个资源, 而且这个资源中真的存在唯一的 "xxx" 类名,而且是这个资源加载进来后(确保其存在于内存中)才使用这个 "xxx" 类名来创建实例的。

如果上一步没有问题, 那么第二步就应该检测是否有跨域的问题, 就是如果有跨域的问题请见我前两篇文章的描述(不知道是否有帮助:http://www.cnblogs.com/vilyLei/articles/2039138.html

如果上两步都没问题,那么就要看看是否是gzip的问题。

如果放置资源的服务器在swf等文件上开启了gzip服务的话, flash在load进swf资源的时候, 因为无法正确的处理gzip解压缩的问题而导致加载进来的flash swf结构有问题。

这个问题很头痛,它的表现就是当缓存中有这个swf的时候不出错,如果没有就出错。因为缓存有这个swf并且从缓存读取的时候这个swf已经被浏览器进行正确的gzip解压缩了(除非这个浏览器不支持gzip)

可以在flash的load程序中加入支持gzip的功能,但是出于不稳定性, 关于gzip个人推荐服务器不要对swf等资源文件做什么gzip压缩, 免得引起让人摸不着北的问题。

如果你使用CDN就要更小心了, 因为CDN上的文件是从你的某个服务器上上得到的,有些文件是新的有些文件是旧的。假定你的旧的文件设置了gizp而新的文件取消了gzip, 那么有gzip设置的swf文件在使用的时候就会报错

 

这是花了时间才得到的心得, 希望在这里的这些观点对你有用。

如果您有更多的心得,很高兴与您分享。 


gzip文件格式简介 

gzip技术文档:http://www.ietf.org/rfc/rfc1952.txt


 

 

转载于:https://www.cnblogs.com/vilyLei/articles/2083280.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值