2016-12-16 1 views
0

저는 프로그래밍에 익숙하지 않습니다, 저는 현재 p5.js를 배우고 있으며 변수에 관한 질문을했습니다. 따라서 상단의 변수는 작동하지 않지만 그릴 함수 내부에 배치됩니다. 왜 그런가요?왜 변수가 Draw에서 작동 하나 코드 상단에서 작동하지 않습니까?

참고 : 코드 샷 스크린 샷. picture of the code

+0

이 경우 질문에 그림을 추가하지 마십시오. 질문 끝에 최소한의 코드 예제를 넣으십시오. –

+0

당신은 객체로 서클을 정의 했으므로 새로운 속성이 아니고 속성이어야합니다. –

+1

[주석 ​​그림] (https://img42.com/UdRNN) –

답변

0

setup()이 호출 될 때까지 내부 p5.js 함수 또는 변수를 사용할 수 없습니다. 더 많은 정보는 the P5.js FAQ에서 찾을 수 있습니다.

이에 대한 설명은 조금 복잡하지만 라이브러리가 모두 글로벌 및 예 모드를 지원하기 위해 설치되는 방법을 을 할 수있다. 무슨 일이 일어나고 있는지 이해하려면 먼저 p5가있는 페이지가로드 될 때 (글로벌 모드에서) 주문이 발생하는지 먼저 살펴 보겠습니다.

  1. 스크립트가로드되었습니다.

  2. HTML 페이지가로드 될 때 (이 작업이 완료되면 onload 이벤트가 발생하고 3 단계가 실행됩니다.)

  3. p5가 시작되면 모든 기능이 전역 이름 공간에 추가됩니다.

그래서 문제는 P5가 이 시작되기 전에 아직 P5 변수를 인식하지 때 스크립트가로드되고 평가된다는 점이다. 여기로 전화하면 오류가 발생합니다. 그러나 브라우저가 스크립트가 처음으로로드 될 때 로드 될 때브라우저가 내부를 찾지 않기 때문에 setup() 및 draw() 내부에서 p5 함수 호출을 사용할 때 이것은 괜찮습니다. setup() 및 draw() 함수는 사용자 코드에서 이 호출되지 않았기 때문에 정의되어 있으므로 내부의 항목은 아직 실행되거나 평가되지 않습니다.

p5가 시작될 때까지 setup() 함수가 실제로 (p5가 호출하기 때문에)이며,이 시점에서 p5 함수는 전역 이름 공간에 이 존재합니다.

관련 문제