작성
·
178
답변 2
6
스크롤 이벤트가 발생할 때마다 계속 반복 실행되는 scrollLoop 함수에서 보면,
기본적으로는 enterNewScene = false; 를 설정하고
새로운 scene에 진입하는 순간(currentScene이 +1 되거나 -1되는 순간)에만 enterNewScene = true;로 설정되는 것을 알 수 있습니다.
스크롤에 따라 값을 반영하는 함수가 playAnimation이기 때문에
새로운 scene으로 진입한 순간에는 playAnimation를 실행하지 않으면 되는데요,
그렇기때문에 enterNewScene이 true일 때는 playAnimation을 실행하기 전에 return으로 함수 실행을 강제로 종료시켜서
playAnimation이 실행되지 않게 한 것입니다.
위 설명에서 이해 안되는 부분이 있다면 또 댓글 달아주세요! ^^
0
선생님 추가 질문입니다. 헷갈리게 뭐냐면,
scroll event가 계속 발생하는 동안
함수 scrollLoop가 실행이 되는데,
함수가 계속 실행이 된다면
if문의 조건 검사를 계속하는걸로 생각을 했습니다.
그렇다면
조건1.
(yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight
조건2
(yOffset < prevScrollHeight + sceneInfo[currentScene].scrollHeight
둘 중 하나에는 무조건 걸려
enterNewScene이 계속 true가 되고
결국 playAnimation함수가
계속 실행되지 않아야 하는 것이 아닌가하는 생각이 듭니다.