今天在调试省级参赛的网络课程时,发现经常出现这个错误:
==========
Internet Explorer 遇到问题需要关闭。我们对此引起的不便表示抱歉。
如果你正处于进程当中,信息有可能丢失。
错误签字:
AppName: iexplore.exe AppVer: 7.0.6000.16640 ModName: flash9f.ocx
ModVer: 9.0.124.0 Offset: 002387c9
==========
然后IE就突然关闭,有时直接关闭。
一开始以为是flash版本不兼容的问题,在 http://www.adobe.com/shockwave/download/flash/trigger/en/2/index.html 升级了flash 9的插件当前最新版为:Version 9,0,124,0
发现问题依然没有解决,询问了工作室的其它同学,发现有的机器出这个问题,有的机器就没有事情。看来这个问题很普遍,很有可能影响作品的参赛。
研究了一下,很多页面都是swf,但是只有几个页面有这种错误,而有错误的页面都是由Adobe Captivate 3做的演示动画出问题。分析可能是发布的版本过高,降到7.0和8.0发布仍然有错误。很奇怪。而单独在flash播放器里播放正常,打包成exe执行也正常。
用captivate打包成的html文件就正常访问,发现新版的打包时,有两个文件,一个是swf主体,一个是XXX_skin.swf格式的播放控件。原来captivate是通过skin文件来调用主体swf来实现制作的(个人认为这种分离显然在某些场合,不太方便。目前还没有找到合并的方法,回头拆解一下swf研究一下),发布的html中有一些js脚本控制组装。难道是这个问题,这种很难保证代码的简洁性,而且制作的同学没有保存原文件,重新发布也不现实。
如果改为exe在网络课程中下载,就失去了在线模拟实验与演示教学的效果了。这让人很为难。只好安排工作室同学采用exe打包下载的方案。
坚持,再研究一下,肯定能找到好的解决方案,我就是死脑袋瓜子,再研究一下。噫,竟然发现captivate发布的网页拷到网络课程里也出问题??放在别的地方就正常??这。。。。
灵光一闪,在研究asp时,曾经遇到过目录过长,地址栏字符超过512K,而提交失败的问题,难道是目录地址过长,导致flash执行或传参错误?
把程序拷到d盘根目录下,嘿果然正常,这显然是flash 控件的地址栏溢出之类问题。如果我们利用这一点,就可以网页中深目录下,埋下一个swf,这样就会让网页突然关闭。。。。
让工作室同学测了一下,果然解决。这下子省事了。
经验:
1.有些问题,看起来不可能解决,坚持一下就会有结果。
2.在创作时原文件一定要保留,以便修改。
3.灵感来于经验,多角度思考问题,会有意外的收获。