【问题标题】:Flash: Coming back from another tab in browser, can flash listen to return to tab event of some sort?Flash:从浏览器中的另一个选项卡返回,Flash 可以监听返回某种类型的选项卡事件吗?
【发布时间】:2008-09-22 16:39:55
【问题描述】:

我有这个 Flash 应用程序,您可以在其中观看视频时单击链接。它将打开一个新标签并暂停视频。现在,当您回到 Flash 应用程序时,如果视频能够再次开始播放,那就太好了。有没有办法,一个事件或其他方式来做到这一点?

【问题讨论】:

    标签: javascript actionscript-3 events focus stage


    【解决方案1】:

    更简洁的方法是使用类似以下内容的东西:

    stage.addEventListener( Event.ACTIVATE, playMovie );
    stage.addEventListener( Event.DEACTIVATE, pauseMovie );
    

    【讨论】:

      【解决方案2】:

      Flash 可能是不可行的,但您可能对纯 javascript 有一些运气,并且可以与您的 Flash 电影进行通信。我建议你玩一下 Window 的 onFocus 事件。

      我以前从未使用过它,因此它可能不会在任何/所有浏览器上触发。

      在 FF3 中有效。它不是有效或好的代码,但它是您的垫脚石:

      <html>
          <head></head>
          <body onFocus="alert('testing');"></body>
      </html>
      

      这也很烦人,因为单击 OK ok 警报,重新触发焦点。 Control+W 将为您关闭选项卡并允许您打破循环。

      【讨论】:

      • 我之前在使用 onFocus 时遇到过问题,它不能 100% 工作。因此,请确保以这样一种方式设计您的应用程序:如果您没有收到 onFocus 事件,用户仍然可以手动单击按钮或其他任何东西以使事情再次正常运行。
      【解决方案3】:

      当焦点进入和离开播放器时,Flash 播放器会发送激活和停用事件。您可能会使用这些,但它们仅限于仅在 Flash 内容焦点发生变化时,而不是在页面焦点发生变化时。

      查看此处blog.flexaxamples.com 了解如何使用 Flash 激活和停用事件。

      【讨论】:

        【解决方案4】:

        我想我已经这样解决了:

        我在舞台上监听 mouse_leave 事件,因为您的鼠标在另一个选项卡中时会离开舞台。 (或者至少,您必须单击一个选项卡才能返回到 Flash,因此您总是在 Flash 之外)。当您离开舞台时,stageLeave 布尔值设置为 true。

        然后我有另一个事件侦听器 mouse_move,它将 stageLeave 布尔值设置为 false(当为 true 时)并调度自定义 STAGE_RETURN 事件。

        这里唯一的旁注是,您必须将鼠标移到舞台上才能再次播放视频。但无论如何,这是你要做的事情。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-02
          • 2014-02-18
          • 1970-01-01
          • 2020-12-14
          • 2011-02-11
          相关资源
          最近更新 更多