[英]long run error after calling the javascript method from the action script
我正在嘗試使用ExternalInterface從動作腳本中調用javascript方法。 這是動作腳本中的代碼
private function onKickEvent(e:LogoutEvent):void{
ExternalInterface.call("LoginFound","message");
return;
}
這是我的javascript mwthod
function LoginFound(message){
alert(message);
anotherInstanceExists=true;
}
一切工作正常,但是唯一的事情是,在大約20秒后對javascript中顯示的警報框進行操作時,Flash Player拋出異常,該腳本的運行時間比預期時間長15秒。
我如何避免這種情況?
解決此問題的最佳方法是在警報行中的JavaScript內添加setTimeout。 它看起來應該像這樣:
setTimeout(function(){ alert(message) }, 1);
通過這種方式,執行不會因為警報而停止。
當您從actionscript
調用js
函數時,該函數必須工作並且返回值的時間不得超過15 sec
。 Javascript
在單線程中運行 ,當您調用LoginFound
函數時, alert
停止線程上的進一步執行。
function LoginFound(message){
alert('something');
//Nothing will be executed unless `alert` window will be closed
}
但是,您可以使用try/catch
在Actionsript
處理這種情況(執行時間超過15秒):
private function onKickEvent(e:LogoutEvent):void{
try{
ExternalInterface.call("LoginFound","message");
}catch(e:Error){
//Do something
}
}
我認為您的onKickEvent
經常被調用
這樣就可以定期調用javascript。 最終瀏覽器超時事件
發生。 它總是在遞歸函數中發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.