时间:2010-07-25 11:37:35

标签: javascript flash browser crash

4 个答案:

答案 0 :(得分:9)

我不确定这是否有效。您可以定期获取对flash对象的引用,并检查它是否具有SetVariable方法。

function checkFlashCrashed() {
   try {
      var tmp = document.getElementById("flashObjectId").SetVariable;
      if(!tmp) {
         alert("Flash crashed");
         return;
      }
   } catch (e) {
      alert("Flash crashed");
      return;
   }
   setTimeout(checkFlashCrashed, 1000); // check it out every one second
}

SetVariable是一个可以从Javascript代码调用的接口函数。如果闪存崩溃,它的界面也会崩溃。因此,这可能是一个解决方案。

答案 1 :(得分:2)

在ActionScript中使用全局异常处理来调用UncaughtErrorEvent.UNCAUGHT_ERROR上的外部接口。

当Flash Player运行时发生错误时,它可能会捕获异常并发出JavaScript信号。

答案 2 :(得分:0)

也许你可以在你的as3文件中使用一个与页面js对话的保持活动脚本,如果js没有几秒钟的调用,你可以让它超时并将其作为一个闪存崩溃处理。

答案 3 :(得分:0)

这取决于你对误报的看法。

如果闪光灯似乎仍在工作,你可以让一个看门狗进行ajax调用“闪光灯没有崩溃”。如果没有写,闪存已经崩溃了。如果用户在检查前关闭页面,这将产生误报。

如果闪光灯似乎不起作用,你可以让看门狗发出ajax调用“闪光灯已经崩溃”。这将错过崩溃,就像崩溃一样,用它来杀死整个浏览器。

也许你可以拥有两个看门狗,这样你就可以更好地了解最新情况。