【发布时间】:2008-09-22 16:39:55
【问题描述】:
我有这个 Flash 应用程序,您可以在其中观看视频时单击链接。它将打开一个新标签并暂停视频。现在,当您回到 Flash 应用程序时,如果视频能够再次开始播放,那就太好了。有没有办法,一个事件或其他方式来做到这一点?
【问题讨论】:
标签: javascript actionscript-3 events focus stage
我有这个 Flash 应用程序,您可以在其中观看视频时单击链接。它将打开一个新标签并暂停视频。现在,当您回到 Flash 应用程序时,如果视频能够再次开始播放,那就太好了。有没有办法,一个事件或其他方式来做到这一点?
【问题讨论】:
标签: javascript actionscript-3 events focus stage
更简洁的方法是使用类似以下内容的东西:
stage.addEventListener( Event.ACTIVATE, playMovie );
stage.addEventListener( Event.DEACTIVATE, pauseMovie );
【讨论】:
Flash 可能是不可行的,但您可能对纯 javascript 有一些运气,并且可以与您的 Flash 电影进行通信。我建议你玩一下 Window 的 onFocus 事件。
我以前从未使用过它,因此它可能不会在任何/所有浏览器上触发。
这在 FF3 中有效。它不是有效或好的代码,但它是您的垫脚石:
<html>
<head></head>
<body onFocus="alert('testing');"></body>
</html>
这也很烦人,因为单击 OK ok 警报,重新触发焦点。 Control+W 将为您关闭选项卡并允许您打破循环。
【讨论】:
当焦点进入和离开播放器时,Flash 播放器会发送激活和停用事件。您可能会使用这些,但它们仅限于仅在 Flash 内容焦点发生变化时,而不是在页面焦点发生变化时。
查看此处blog.flexaxamples.com 了解如何使用 Flash 激活和停用事件。
【讨论】:
我想我已经这样解决了:
我在舞台上监听 mouse_leave 事件,因为您的鼠标在另一个选项卡中时会离开舞台。 (或者至少,您必须单击一个选项卡才能返回到 Flash,因此您总是在 Flash 之外)。当您离开舞台时,stageLeave 布尔值设置为 true。
然后我有另一个事件侦听器 mouse_move,它将 stageLeave 布尔值设置为 false(当为 true 时)并调度自定义 STAGE_RETURN 事件。
这里唯一的旁注是,您必须将鼠标移到舞台上才能再次播放视频。但无论如何,这是你要做的事情。
【讨论】: