Flash as脚本执行出现15秒超时错误---记录

在执行flash的as脚本时,出现了15秒超时错误。查看adobe官网文档有相关描述

http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/runtimeErrors.html

出现15秒超时错误后,脚本可以继续执行 15 秒,然后将终止脚本并引发编号为 1503 的运行时错误(脚本在 30 秒内未能退出,终止其执行)。

 

 

应用背景: 在flash中有一按钮,增加了点击事件处理函数:flaClickHandle,再处理函数中通过ExternalInterface.call,调用jsp页面中的一js函数:callbackForFla,在该函数中,执行window.showModalDialog。

 

在测试中,前面执行正常,当将window.showModalDialog打开的模态窗口关闭时,原页面中的flash报15秒超时错误。

 

初步分析,在callbackForFla,中的window.showModalDialog函数,是在模态窗口关闭时才返回。flash将它调用的外部函数callbackForFla的执行时间,计作as脚本的执行时间,及flaClickHandle函数的执行时间。这种情况下很容易,出现15秒超时错误。因为一个模态窗口只开15秒,就关闭。

 

针对这种情况的一种解决方法,就是把window.showModalDialog换为window.open

 

更一般的解决方法时,更改flash发布设置中的超时时间(不推荐,治标不治本)

 

还有一中方法是(推荐):在flash要掉用的js函数中使用js中的定时器(setTimeout,setInterval)去执行真正的目标的函数,而本函数会很快返回。以上为例就是:

 

flaClickHandle-》ExternalInterface.call-》callbackForFla-》timerRun-》targetFun

 

 

function callbackForFla(){

    window.setTimeout("timerRun",100); //该语句的执行时间不会超过15秒

}

 

function timerRun(){

    window.showModalDialog...//或者其他targetFun函数

}

 

 

阅读更多

没有更多推荐了,返回首页