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函数

}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值