p5.js로 응용 프로그램을 작성하기 위해 npm, webpack, babel 환경을 사용하고 있습니다.인스턴스 모드에서 p5.sound.js 사용 : 'p5.Amplitude()가 생성자가 아닙니다'
const sketch = (p5) => {
window.p5 = p5;
...
}
new p5(sketch);
:
import p5 from 'p5';
import 'p5/lib/addons/p5.sound';
import 'p5/lib/addons/p5.dom';
가 그럼 난 내 스케치 내부 창에로드 : 모듈로 스케치를 가지고, 내가
instance mode에서 스케치를 가지고 있고 라이브러리를 가져오고 추가 기능을 모듈로 할 수
내가 사용하려고하면 :
amp = new p5.Amplitude()
가 나는 오류 'p5.Amplitude 생성자 아니다'얻을. 내 예측은 창에 라이브러리 p5의 이름을 지정하는 것과 p5.Amplitude, p5.Vector, p5.Soundfile과 같은 p5.something을 사용하는 라이브러리의 생성자를 사용하는 것 사이에 충돌이 있다는 것입니다. 인스턴스 모드에서 이러한 개체 나 생성자를 사용하는 것에 대한 해결 방법을 찾을 수 없었습니다. 그러나 나는이 생성자가 필요없는
objects의 메소드를 사용할 수 있습니다. 예를 들어,
loadSound()
은 p5.Soundfile의 메소드입니다. 다음 작품 : 나는
console.log(p5.SoundFile)
을하려고 할 때
sound = p5.loadSound('assets/sound.wav)
는하지만 정의되지 않은 얻을.
나는 분실했습니다!
응답 주셔서 감사합니다. 나는'window.p5 = p5'를 사용하여 es6 모듈을 사용하여 라이브러리를로드 할 수 있습니다. 후자의 경우,'import p5 from .... .... '을 사용하여 창에서 라이브러리를 사용할 수 있도록하고 있습니다. 나는 p 대신 p5를 사용하는 인스턴스 모드와 같은 나머지 기능을 사용할 수 있습니다. Def는 자바 스크립트 전문가도 아니지만이 결정은 [this] (https://github.com/vogelino/molecular-networks-p5-algorithm/blob/master/src/js/index.js) 프로젝트를 기반으로합니다. 그것을 매끄럽게 해내는 것처럼 보입니다. 건배! –
나는 네 대답을 찾을 때까지 p5.js가 es6 모듈 문법으로 작동하도록 몇 시간 노력했다. Kevin. 위대한 작품! –