Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

feat: 키보드 동작 트리거를 위한 custom event #6

Merged
merged 3 commits into from
Feb 24, 2023

Conversation

behoney
Copy link
Member

@behoney behoney commented Feb 21, 2023

overview

document에 dispatch 할 수 있는 custom event를 선언하고,
해당 custom event에 대한 핸들러를 구현했습니다.

이해를 돕기 위해서 데모 용도의 코드를 추가했습니다.
키보드 입력에 대응하는 키가 눌리도록 ("a" 키 누르면 "A"에 해당하는 키보드 매쉬가 움직이면서 소리나도록) 작업해두었습니다.
index.tsxaddEventListener 참고해주세요.

2023-02-21.11.24.34.mov

사이트에 접속해서 키보드 a 와 s 눌러보시길 바랍니다.

detail

  • custom event를 대해 선언해주려고 298ac74 에서 documentThreeEventTypeThreeCustomEvent를 선언했습니다. (좋은 이름 추천해줘도 좋겠습니다. ThreeEvent 이름은 이미 @react-three/fiber에게 선점당했어요.

  • 위의 커스텀 이벤트 선언을 통해 document.addEventListener('threekeyboardevent', keyboardEventHander)처럼 이벤트핸들러 바인딩이 가능합니다.
    298ac74 의 src/components/Keyboard/Key/index.tsx 를 봐주세요.

  • 커스텀 이벤트 생성을 돕고자 helper function 추가했습니다. 38c90ac 에서 추가한 genCustomKeyEventFromCharacter 이름의 함수를 확인해주세요.

  • 38c90ac 에서 데모 용도의 document의 keydown 이벤트 리스너를 등록했습니다. 키보드 움직임+소리 재생 기능을 원할 땐 해당 방식으로 호출하면 됩니다.

@behoney
Copy link
Member Author

behoney commented Feb 21, 2023

@BonhaengLee 이해 안되는 부분 있으면 말씀주세요~

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Feb 21, 2023

Deploying with  Cloudflare Pages  Cloudflare Pages

Latest commit: 38c90ac
Status: ✅  Deploy successful!
Preview URL: https://73afd461.febase4-3d-team1.pages.dev
Branch Preview URL: https://feat-custom-event.febase4-3d-team1.pages.dev

View logs

Copy link
Member

@BonhaengLee BonhaengLee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다.

@behoney behoney merged commit 98bd148 into master Feb 24, 2023
@behoney behoney deleted the feat/custom-event branch February 28, 2023 03:57
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants