텍스트를 누르면 프로그래밍한 소리가 나오게 하고 싶습니다.

조회수 488회

생활코딩 독학 4주째인.. 디자이너 코린이입니다..

텍스트를 누르면 프로그래밍한 소리가 나오는 형태의 html을 만들고 있습니다.

(혼자 끙끙대면서) 현재까지는 글을 클릭하면 색깔 바(bar)로 변하는 디자인으로 만들었습니다.

글씨를 누르면 프로그램밍으로 만든 소리도 같이 나오는걸 목적으로 하고 있습니다.

교수님께서 샘플로 소리가 나오는 코드를 p5 에디터에서 만들어서 공유해 주셨습니다.

(하단에 교수님이 도움을 주신 코드도 올려놓았습니다.)

교수님이 샘플로 만드신 코드는 p5 에디터에서는 소리가 나오는데요.

제가 만든 html 파일의 텍스트를 눌렀을 때 소리가 나오려면 함수값을 넣어야 하는것 같은데 어떤 함수값을 어디에 어떻게 써야하는지를 몰라서 여기에 질문을 올려 봅니다..

<div id= "word" onclick="myFunction()">

어제 아는분의 아는 분께서 여기에 함수값을 넣으라고 조언해 주셨는데.. 그게 뭔지를 잘 모르겠어서.. (너무 코린이라서..)

제발 도와주시기를 부탁드립니다.

저는 맥os Monterey을 사용하고 있고, Atom이라는 에디터로 작업하고 있습니다.

https://github.com/HinnnaHinnna/my-first-website/blob/main/visu_p(2).html https://hinnnahinnna.github.io/my-first-website/visu_p(2)

(여기에 제가 만든 html을 올려 놓았습니다. ) (제가 이 질문방에 코드를 정확히 올리는 법을 잘 모르는것 같아.. 일단 당장은 위의 링크도 같이 올립니다.. 혹시 참고가 될까 해서..)

교수님께서 샘플로 짜주신 코드의 경로는 아래와 같습니다.

https://editor.p5js.org/yangminha/sketches/HaRY7zGgM

제가 코드는 붙이면 정확하게 올라 가지 않아서..

제발 도와 주세요...

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    교수님이 샘플로 만드신 코드는 p5 에디터에서는 소리가 나오는데요.

    그러면 교수님의 샘플을 봅시다.

    <div onClick="playho(2);">ho2</div>
    

    이 HTML을 외국어영역 지문이라고 생각하고 읽어 봅시다.

    here begins a division. on click (this) : playho 2. (후략)

    모르는 단어는 딱히 없는데 playho 동사의 뜻을 모르겠군요. 교수님의 index.html은 소리를 재생하는 걸 보면 이 동사의 뜻을 아는 모양이죠. 그러면 질문자님의 index.html 웹페이지는 이 동사가 뭔지 알고 있을까요? 질문자님의 github 링크를 열고 브라우저 자바스크립트 콘솔을 연 다음(크롬이라면 F12) 클릭을 해 봅니다.

    이런! 시뻘건 오류가 뜨는군요.

    Uncaught ReferenceError: playho is not defined
    처리되지 않은 참조오류: playho가 뭔지 모르겠음

    아니나 다르랴 웹페이지도 모르겠다고 하는군요. 그런데 교수님의 샘플에서는 이런 무서운 오류는 뜨지 않네요. 왜 그럴까요? 아무래도 교수님의 샘플 소스는 playho 동사의 뜻을 아는 거 같습니다. 어디서 몰래 배워온 것일까요? 어디가 됐든 어딘가에서 분명 배워놨겠죠!

    모든 소스를 뒤져봅니다. 운좋게도 교수님의 sketch.js 안에서는 playho를 찾을 수 있었습니다.

    function playho(number) {
      // 어쩌구 저쩌구...
    }
    

    이 자바스크립트가 index.html 안에 포함돼 있었기 때문에 브라우저는 playho 동사("함수")를 기억("할당")해뒀다가 해석("실행"/"렌더링")할 수 있었군요! 그럼 이제 질문자님의 코드가 playho라는 것을 배웠는지 알아볼까요?

    질문자님의 sketch.js에서는 playho는 찾을 수 없고 이런 것만이 발견됩니다.

    function word(number) {
        // 어쩌구 저쩌구...
    }
    

    이런! playho는 배운 적이 없고 word를 배웠었군요. 그렇다면 질문자님의 index.html의 잘못이란 단지 word라고 했어야 하는 것을 playho라고 한 잘못뿐이네요.

    이제 뭘 고쳐야 하는지 이해가 되셨을 겁니다. 이해가 되지 않으셨다면, 그냥 단념하시고, 교수님의 샘플을 복사해서 처음부터 다시 시작하시는 편이 빠르다고 하겠습니다. 포기하지 마시고, 상쾌한 정신으로 다시 찬찬히 살펴보세요.

    • 너무너무 친절한 답변 감사드립니다!! 포기하지 않고 열심히 배우겠습니다!!!! HinnnaHinnna 2022.5.19 19:20
    • 수정했더니 소리가 나와요!!! 감사합니다!!!!!!!!!!!!!!!! HinnnaHinnna 2022.5.19 19:32

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)