3

我想用 Three.js 做一个游戏,但是如何让它全屏呢?我看到了这篇文章,并且在我的代码中包含了 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”。但是——什么都没有!控制台中没有错误消息或任何东西......我已经尝试了他的池示例,它有效,所以我很确定这不是我的电脑的错......

4

1 回答 1

5

你必须:

  1. 在用户允许时请求,例如 on keydown。我想原因与打开弹出窗口相同。一个网页自行随机切换全屏可以说比自动打开的弹出窗口更烦人。
  2. 在元素上请求全屏,而不是document.
  3. 设置为调用(所以只需像下面这样调用它)requestthisTHREEx.FullScreen

所以例如:

document.body.addEventListener("keydown", function() {
  THREEx.FullScreen.request();
}, false);
于 2012-05-20T11:19:19.637 回答