阴沟里翻船记

接了个外包项目,帮客户做一个销售培训的课件。最开始客户提的要求只是做一个光盘版即可。项目也还算顺利。但在最后一刻,客户说想做个网络版的,放在他们的学习平台上使用。幸亏当初沿用了一直在用的框架(其实就这一套),所以改起来也顺风顺水,在自己搭的Moodle2平台上测试通过交付给客户。

但是客户反馈说,做好的课件在他们公司内部的系统上会载入0或100%的时候就不动了;还有的电脑今天可以正常浏览,隔天突然就不能访问了。当初这个框架也做了10几套课件,从没遇到这样的问题。至于swf文件不能载入的情况,在其他的项目中倒是遇到过,但原因是字体或声音的问题,重新发布一下基本就解决了。所以开始怀疑是发布版本的问题,先降到9,不行;再降到8,还是不行。于是就到客户公司现场看看怎么回事。最终也没看出啥门道。

回来的晚上给奈落讨教,他说了几个原因 貌似都不是导致问题的。但还是一语惊醒梦中人——模拟一个环境来测试啊。对啊,这个问题咋没想到。火速开VMlite虚拟机,卸掉IE8,装上IE7,打开课程,果然一开就卡死了,原来我的Flash课件跟IE7 有冲突!!!这个问题原来为什么没发现呢?因为上次大批量开发课程的公司内部用的是最老的IE6,不会有冲突,IE8/9、chrome也都不会有问题,偏偏这家公司内部用的是IE7,结果我就撞枪上了。

不过也好,正好借机把程序完善嘛。中间一度以为把问题找到了,load初始的时候mc对象还没创建,所以程序卡住了。满心鼓舞的按照此思路去解决的时候,发现有不对了。偶尔正常的现象,估计跟那家公司一样。所幸的是,虚拟机卡在那里,我在改代码,过了一会儿,虚拟机里的课件又活过来了。原来是卡住,不是卡死。又尝试了几次,发现是5分钟以后,程序就好了,问题只在第一个swf载入的时候会发生,而不管这个文件在课程中的位置。

最终定位的导致问题的代码是我新加的全局load。但是折腾了许久都没改好,最后为了解决问题,还是用了老的框架,每个swf的load还是在各自的文件里。

是以为记!

Add a Comment