问题来源:部分玩家反映安装了debug Flash Player后玩游戏经常崩溃,必现。
解决思路:一般浏览器崩溃都是内存泄露,于是查看内存情况,总的游戏占用内存不过100M时也会崩溃,故判断和内存无关。
继续寻找线索。。。
只有公网游戏才会出现该情况、内网访问正常,怀疑文件上传有问题,重现上传,问题依旧。
继续寻找线索。。。
发现用非Debug Flash Player访问正常,而Debug播放器访问在firefox浏览器中表现为崩溃、在IE中表现为卡死,该现象是必现的。
因为发生崩溃是进到游戏的展厅,加载了某个特定的服饰文件,于是逐个排除文件,在定位文件的过程中用httpfox查看请求,出现一下404错误:
奇怪的问题,flash 不知为何会自动加载一个和主文件同名的swd 文件。游戏中并没有代码去加载类似文件。
于是查看swd是什么文件,是as2调试版自动调用的调试文件,怀疑该文件是调试版,于是做了验证测试:
发布一个AS2版本的文件(命名为ss.swf),再用一个as3的文件aa.swf去加载,未重现。想到上面测试发现本地访问是正常,公网才异常的情况,分析本地和公网一个区别是本地的主文件时debug版,公网的是release版本。于是把aa.swf用release方式发布,再次加载ss.swf,用firefox访问,httpfox果然出现请求swd文件404错误。
那么问题基本定位明确,问题出在哪个as2的swf文件中,用硕思闪客精灵破解该文件,发现有这样一个标志:
AS2 debug版本的swf里面都有这样一个标记,在被请求时会向服务器上自动请求一个同名swd文件,以供本地调试。
定位明确后,从1w多件服饰中查找出这些debug版本的swf,重新release发布,问题解决。