2016-06-25 2 views
1

저는 Javascript를 처음 접했을뿐입니다. 왜 내가 원하는 방식으로 작동하지 않는지에 대해 머리를 감싸는 것처럼 보일 수 없습니다. 팬더라는 html5 Javascript 게임 엔진을 사용하고 있습니다. 게임을 일시 중지하려고 시도하고 있으며 게임을 일시 중지하면 PauseScreen을 표시로 설정하려고합니다. 일시 중지 화면은 게임이 일시 중지 된 동안 표시하려고 시도하는 이미지입니다. game.system.pause(); 엔진의 일부인 기능입니다. 내 질문은 이것이 내가 원하는 방식대로 작동하지 않는 이유이다. 나는 이것이 팬더가 아니라 자바 스크립트에 관한 질문이라고 생각합니다. 미안해 내가 틀렸다면. 이것은 자바 스크립트의 비동기 성격의 결과인가?Javascript에서 위의 줄 앞에 함수가 호출되는 이유는 무엇입니까?

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

나를 도와 줄 수있는 도움은 정말 대단합니다. 내가 세부 사항을 충분히주지 않았다면 미안해. 미리 감사드립니다.

+0

pauseGameFunc 외의 다른 키워드를 사용하는 경우 pauseGameFunc는 전역 변수가됩니다 – brk

+2

'pauseScreen.style.visibility = 'visible';'또는'.style.display = '상속'; – dandavis

+1

본문의 클래스를 토글하는 것이 좋습니다. 코드 전체에서 불연속 DOM 요소를 만지는 대신 상속 된 CSS를 사용하여이 작업을 수행 할 수 있습니다. 나중에 일시 중지시 다른 것을 표시하거나 사후/숨기기 대신 페이드와 같은 애니메이션을 사용하는 것이 쉽습니다. – dandavis

답변

1

pauseScreen.visible = true;pauseScreen이 이미지 요소 인 경우 아무 것도 수행하지 않습니다. 당신이 그것을 숨기려는 경우는 다음과 같습니다

pauseScreen.style.display = "none"; 

다시 보여 :

pauseScreen.style.display = ""; 

귀하의 다른 옵션은 visibility 속성과 값 "visible""hidden"입니다. 차이점은 display으로 숨겨진 이미지가 레이아웃에서 아무 공간도 차지하지 않는다는 것입니다. visibility"hidden"으로, 여전히 공간을 차지하지 않으며 단지 표시되지 않습니다.

관련 문제