簡體   English   中英

從動作腳本調用javascript方法后出現長期運行錯誤

[英]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/catchActionsript處理這種情況(執行時間超過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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM