2012-05-20 2 views
3

Я хочу сделать игру с Three.js, но как мне сделать это в полноэкранном режиме? Я видел this article, и я включил THREEx в свой код, но когда я это делаю: THREEx.FullScreen.request() ничего не происходит! Я посмотрел на код ThreeX, и изменил его, как это, для целей отладки:Как сделать Three.js полноэкранный режим?

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

Когда вы звоните его? Я считаю, что вам разрешено запрашивать реакцию на ввод пользователя, например, событие «keydown». – pimvdb

+0

Действительно? Странно, я не понимаю ... Но сделаю! – corazza

+0

Когда я пишу это так: 'document.addEventListener (« keydown », THREEx.FullScreen.request);', я получаю сообщение об ошибке, которое «assertion failed». – corazza

ответ

5

Вы должны:

  1. Запрос, когда пользователь позволяет, например на keydown. Я предполагаю, что аргументация такая же, как вскрытие всплывающих окон. Веб-страница, переключающая полноэкранный режим по своему усмотрению, возможно, даже более раздражает, чем всплывающие окна, автоматически открывающиеся.
  2. Запросить полный экран на элементе, а не document.
  3. Звоните request с this, установленным на THREEx.FullScreen (так что просто назовите его, как показано ниже).

Так например .:

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

Отлично, как я уже сказал, отлично работает ... +1! – corazza

Смежные вопросы