2016-06-25 3 views
1

Я довольно новичок в Javascript, и мне просто не кажется, что я склоняюсь вокруг, почему это не работает так, как я этого хочу. Я использую html5 Javascript игровой движок под названием panda. Я пытаюсь приостановить свою игру, и когда я приостанавливаю игру, я хотел бы установить PauseScreen на видимую. Пауза - это изображение, которое я пытаюсь отображать, когда игра приостановлена. game.system.pause(); является функцией, которая является частью двигателя. Мой вопрос: почему это не работает так, как я этого хочу. Я предполагаю, что это вопрос, относящийся к Javascript, а не к панде; извините, если я ошибаюсь. Является ли это результатом асинхронной природы Javascript?Почему функция вызывается перед строкой над ней в Javascript?

pauseGameFunc = function (gmPsd){ 
    if (gmPsd === 0) { 
     pauseScreen.visible = true; 
     return game.system.pause(); 
    } 
    else { 
     pauseScreen.visible = false; 
     return game.system.resume(); 
    } 
} 

Любая помощь, которую вы можете мне предложить, была бы замечательной. Извините, если я не дал достаточно подробностей. Заранее спасибо.

+0

use var key word before pauseGameFunc otherewise pauseGameFunc будет глобальной переменной – brk

+2

'pauseScreen.style.visibility = 'visible';' или '.style.display = 'inherit';' – dandavis

+1

Я бы рекомендовал переключить класс на тело и используя унаследованный CSS для этого, вместо того, чтобы касаться дискретных элементов dom со всего вашего кода. что делает тривиальным начать показывать что-то еще при паузе в более поздней точке или использовать анимацию как замирание, а не просто показать/скрыть. – dandavis

ответ

1

pauseScreen.visible = true; если pauseScreen - элемент изображения ничего не делает. Если вы хотите, чтобы скрыть его, это:

pauseScreen.style.display = "none"; 

, чтобы показать его снова:

pauseScreen.style.display = ""; 

Другой вариант является visibility собственности и значения "visible" и "hidden". Разница в том, что с display скрытое изображение не занимает ни одной комнаты в макете. С visibility"hidden", он по-прежнему занимает место, он просто не отображается.

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