AS3 - 使用ExernalInterface.call重置JS计时器

时间:2015-06-09 08:39:52

标签: javascript html actionscript-3 externalinterface

我正在尝试在闪存应用中构建一个'死人转换'。当应用程序崩溃或显着减慢时,我希望网页刷新。从我在这里阅读和看到的内容,可以使用ExernalInterface来调用resetTimer JS函数。

继承我的AS3 ..

//External Timer and Handler
var externaltimer: Timer = new Timer(1000);
externaltimer.addEventListener(TimerEvent.TIMER, callTimerJS);
externaltimer.start();

function callTimerJS(event : Event):void{
  ExternalInterface.call("window.clearTimeout");
  ExternalInterface.call("timeoutHandle");

}

在我的HTML页面中看到我的JS ......

    var timeoutHandle = window.setTimeout(function() {
    window.location.reload(1);
}, 15000);

window.clearTimeout(timeoutHandle);

timeoutHandle = window.setTimeout(function() {
    window.location.reload(1);
}, 15000);

我不确定如何测试它来验证它是否正常工作。我知道当我构建时,网页每15秒刷新一次。我无法让闪光灯重置计时器。

1 个答案:

答案 0 :(得分:1)

使用普通的函数声明,并确保它不是js-core-function-name。 您只能调用函数。

<强> AS

//External Timer and Handler
var externaltimer: Timer = new Timer(1000);
externaltimer.addEventListener(TimerEvent.TIMER, callTimerJS);
externaltimer.start();

function callTimerJS(event : Event):void{
    if (ExternalInterface.available) {
        ExternalInterface.call("clearTimeoutfromExtern");
    } 
}

<强> JS

var timeoutHandle;
function clearTimeoutfromExtern(){
     clearTimeout(timeoutHandle);
     timeoutHandle = setTimeout(refresh, 15000);
}
function refresh(){
    window.location.reload(1);
}

我刚在编辑器中写到这里... 问候。