Scratch로 더블 클릭으로 이중 전송 방지
2767 단어 Scratch
하고 싶은 일
①문제문・해답의 선택사항을 표시
② 선택사항을 클릭
③정오 판정
④다음 문제로 전환
라는 것을 만들 때 ②에서 더블 클릭을 해도
다음 문제로 옮길 수없는 두 번째 클릭은 다음 문제에 대한 답변으로 판단됩니다.
라는 것이 없도록 하고 싶다.
↓화면 이미지
대답만 원할 때
→「할 수 있었다!」의 항목의 2장째의 화상
문제점
Scratch에는 기존의 이벤트나 제어에 더블 클릭 판정이 존재하지 않기 때문에
스스로 어떻게든 짜야 한다.
onClick은 있지만 onDblClick은 없다는 상태.
NG①
선택의 스프라이트를 더블 클릭하면, 다음의 문제로 옮길 수 없게 된다.
다시 클릭해도 문제 천이할 수 없고, 처음부터 다시 시작할 수밖에 없게 된다.
1 초 기다리는 동안 다음 클릭이 와서,
「다음의 배경으로 한다」와 「status를 0으로 한다」가 움직이지 않는 것 같다.
더블 클릭 후, status는 1이 되었다.
NG②
NG①에서 1초 기다리는 것이 안될 것 같았기 때문에, 기다리지 않게 해 보았다.
그러면 이번에는 두 번째 클릭이 다음 문제의 해답으로 취급되어 버려 2문 단번에 진행된다.
개선
NG①의 else측에 문제 천이와 status를 0으로 하는 처리를 넣었는데, 조금 하고 싶은 것에 접근했다.
이 시점에서 NG
Scratch에는 기존의 이벤트나 제어에 더블 클릭 판정이 존재하지 않기 때문에
스스로 어떻게든 짜야 한다.
onClick은 있지만 onDblClick은 없다는 상태.
NG①
선택의 스프라이트를 더블 클릭하면, 다음의 문제로 옮길 수 없게 된다.
다시 클릭해도 문제 천이할 수 없고, 처음부터 다시 시작할 수밖에 없게 된다.
1 초 기다리는 동안 다음 클릭이 와서,
「다음의 배경으로 한다」와 「status를 0으로 한다」가 움직이지 않는 것 같다.
더블 클릭 후, status는 1이 되었다.
NG②
NG①에서 1초 기다리는 것이 안될 것 같았기 때문에, 기다리지 않게 해 보았다.
그러면 이번에는 두 번째 클릭이 다음 문제의 해답으로 취급되어 버려 2문 단번에 진행된다.
개선
NG①의 else측에 문제 천이와 status를 0으로 하는 처리를 넣었는데, 조금 하고 싶은 것에 접근했다.
이 시점에서 NG
NG①에서 1초 기다리는 것이 안될 것 같았기 때문에, 기다리지 않게 해 보았다.
그러면 이번에는 두 번째 클릭이 다음 문제의 해답으로 취급되어 버려 2문 단번에 진행된다.
개선
NG①의 else측에 문제 천이와 status를 0으로 하는 처리를 넣었는데, 조금 하고 싶은 것에 접근했다.
이 시점에서 NG
더 이상이 소스는 개선 방법을 모르기 때문에
디자인에서 다시 시도.
할 수 있었다!
①문제문・해답의 선택사항을 표시
② 선택사항을 클릭
③정오 판정
④다음 문제로 전환
②와 ③, ③과 ④사이에서 클릭이 끼어들었을 경우에 그 이벤트를 무시하면 성공할 것.
그래서 상태 관리를 2 종류 (문제 천이했는지 · 정오 판정 완료했는지)로하고,
단번에 정오 판정이나 문제 천이를 하고 있던 곳을 메시지의 교환으로 변경해 보면 성공했다.
라는 곳에서, 이 코드라면 isCheckFinished의 존재의의가 없는 것을 깨달았으므로, isCheckedFinished를 삭제.
움직였습니다.
이미지뿐이라고 설명이 부족한 곳을 보완
이제 문제 전이가 완료될 때까지 아무리 클릭해도 문제 없을 것.
NG의 무엇이 NG였는지 (이해할 수 있으면 추기)
NG가 원래 왜 움직이지 않았는지, 개선한 녀석의 개선의 무엇이 불충분했는지. . .
Reference
이 문제에 관하여(Scratch로 더블 클릭으로 이중 전송 방지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ju_/items/c76ec0511d8a72c6309a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)