首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Flash抢占了浏览器的焦点

Flash抢占了浏览器的焦点
EN

Stack Overflow用户
提问于 2008-10-31 16:28:37
回答 6查看 7.9K关注 0票数 17

我的页面中有一个flash应用程序,当用户与flash应用程序交互时,browser/html/javascript将停止接收键盘输入。

例如,在Firefox中,control-t不再打开新的选项卡。

但是,如果我点击页面中非flash的部分,浏览器会再次开始接收这些事件。

有没有办法通过编程(通过flash或javascript)将焦点返回给浏览器?

在用户单击flash中的一个按钮后,我让flash执行一个javascript回调,所以我尝试通过javascript将焦点放在表单字段(和正文)上,但这种方法似乎不起作用。

一个可能更具体的例子是Youtube。他们也有这个问题。当我点击播放/暂停按钮,或者调整音量时,我希望我的浏览器键盘控制仍然有效,但它们不起作用,我必须在页面上电影区域之外的某个地方单击。这正是我想要解决的问题。

EN

回答 6

Stack Overflow用户

发布于 2008-10-31 18:25:03

您可以在闪存中使用ExternalInterface类来调用JavaScript。例如,您可以设置一个间隔函数(例如Event.ENTER_FRAME)来调用@Diodeus提到的JavaScript函数:

代码语言:javascript
复制
document.body.focus();

或者,更好的解决方案是将事件侦听器添加到Flash根目录(阶段),以侦听鼠标何时离开flash。您可以将此事件设置为将焦点移至document.body。

AS3

代码语言:javascript
复制
package {
   import flash.display.*;
   import flash.events.*;
   import flash.external.ExternalInterface;

    public class TestMouseLeave extends Sprite
    {
        public function TestMouseLeave()
        {
            // Add event listener for when the mouse LEAVES FLASH
            addEventListener(MouseEvent.MOUSE_OUT, onMouseLeave);
        }

        private function onMouseLeave(ev:Event):void
        {
            var jslink = new ExternalInterface();
            jslink.call("changeFocus");
        }
    }

}

页面上的Javascript:

代码语言:javascript
复制
<script type="text/javascript" language="javascript">
    function changeFocus(){
        document.body.focus();
    }
</script>

如果你想要一个AS2示例,请告诉我,我会把它张贴出来。

我想说明一下这个解决方案:一旦您将焦点推回到浏览器,您将要求用户再次单击Flash插件以激活flash插件中的用户输入。这可能是一个不和谐的用户体验,并且是使用此解决方案时需要考虑的问题。

票数 6
EN

Stack Overflow用户

发布于 2008-10-31 16:36:04

我认为当鼠标离开它的客户区时,Adobe需要放弃焦点,或者提供一个这样做的选项。

然而,我认为大多数Flash开发人员(尤其是那些开发游戏的开发人员)都依赖于这样一个事实,即无论鼠标在哪里,键盘输入都会被flash应用程序捕获。

票数 3
EN

Stack Overflow用户

发布于 2010-12-31 02:14:38

在火狐中,document.body.focus();不起作用。使用与Cláudio Silva对此Chrome issue的解决方案相同的想法,以下JavaScript将在火狐中工作:

代码语言:javascript
复制
document.body.tabIndex = 0;
document.body.focus();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/254111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档