익명의 개발노트

[Wecode 71일차] 음악파일 초기화관련 이슈, 버튼 이벤트 클릭안되게 막기 본문

코딩일기/TIL

[Wecode 71일차] 음악파일 초기화관련 이슈, 버튼 이벤트 클릭안되게 막기

캡틴.JS 2019. 8. 14. 15:37
반응형

1. 음악파일 초기화 관련이슈

게임시작버튼을 누르면 배경음이 로딩 후 2초 뒤에 작동하게 끔, 러시아 형님이 만들어 놓으셨다.

 

다만  게임화면에서 로그아웃을 하면 로그인 화면으로 넘어가고, EXIT버튼을 누르면 게임 시작화면으로 넘어가는데,

 

이때 음악이 안꺼지게 설정을 해놓았다.

 

음악 실행부분은 리덕스로 해놓았기에, 소스를 확인했다. 

 

음악은 일시정지만 있을 뿐, 정지는 아예없었다.

 

그리고 음악이 꺼지지 않은 상태에서 게임을 재시작하면, 음악이 기존음악이 멈췄다가 다시 첨부터 배경음이 다시 나온다.

 

해결방법

1. 기존에 이미 소스코드가 어지럽게 꼬여있기에, 손수 풀어서 사용하기엔 공수가 너무 많이 든다고 판단

2. 로그인화면이나 게임시작화면으로 이동시 볼륨 0으로 낮추고, 게임시작버튼 클릭하면 볼륨 올려주고, 음악 멈추는 부분 setTimeout 시간 대폭 줄이고, 배경음 나오는 setTimeout시간 일부 줄여서 딜레이를 줄여서 극복함.

 

2. 옵션창 켜져있을 경우 게임 실행버튼 클릭안되도록 설정

옵션창 켜져있을 경우, 게임 실행버튼이 클릭안되도록 설정해야한다.(유저가 실수로 라도 클릭하는 것을 방지)

 

이미 컴포넌트 구조가 이원화 되어있어서(게임버튼은 부모컴포넌트, 옵션창은 자식컴포넌트) ref를 달기에는 코드가 효율적이지 않게 된다. 

 

해결방법

1. 자식컴포넌트에 div하나 넣고 버튼 위에 올려서 클릭을 방지했다.

반응형
Comments