如何制作Three.js全屏?

时间:2012-05-20 08:56:47

标签: javascript html 3d fullscreen three.js

我想用Three.js制作一款游戏,但如何全屏制作呢?我看到了this article,我在我的代码中包含了THREEx,但当我这样做时:THREEx.FullScreen.request()没有任何反应!为了调试,我查看了THREEx代码,并将其更改为:

THREEx.FullScreen.request   = function(element)
{
    element = element   || document.body;
    if( this._hasWebkitFullScreen ){
        element.webkitRequestFullScreen();
        console.log("f");
    }else if( this._hasMozFullScreen ){
        element.mozRequestFullScreen();
        console.log("g");
    }else{
        console.assert(false);
    }
}

因此,这默认为使document.body全屏,并在控制台中打印“f”。但是 - 没什么!控制台中没有任何错误消息或任何东西......我已经尝试过他的游泳池示例,它可以工作,所以我很确定这不是我的电脑的错...

1 个答案:

答案 0 :(得分:5)

你必须:

  1. 用户允许的请求,例如在keydown。我猜这个推理与打开弹出窗口相同。一个自动随意切换全屏的网页可能比弹出自动打开更烦人。
  2. 请求元素全屏,而不是document
  3. request设置为this的情况下致电THREEx.FullScreen(所以请在下面调用)。
  4. 所以例如:

    document.body.addEventListener("keydown", function() {
      THREEx.FullScreen.request();
    }, false);