0
뷰를 렌더링 할 때 이벤트 수신기를 올바르게 추가하는 이유가 확실하지 않지만 다른 이벤트 함수 내부에 이벤트 리스너를 추가하려고하면 정의되지 않고 오류가 발생합니다. 이벤트를 올바르게 추가하려면 어떻게해야합니까?이벤트에서 EventListener 추가 및 제거
해결 방법은 마우스가 눌려져 있는지 여부를 저장하는 변수를 추가하는 것입니다.하지만 이벤트 리스너를 추가하고 제거하는 것만으로 화면이 지워집니다. 또한 혼란의 또 다른 변수에 대한 필요성을 부정합니다.
코드 :
render: function() {
//sets up a new Easeljs stage called context
Canvas.context.addEventListener("stagemousedown", this.handleMouseDown);
Canvas.context.addEventListener("stagemouseup", this.handleMouseUp);
},
handleMouseDown: function() {
console.log('down');
Canvas.context.addEventListener("stagemousemove", this.handleMouseMove);
},
handleMouseMove: function() {
console.log('moving');
},
handleMouseUp: function() {
console.log('up');
Canvas.context.removeEventListener("stagemousemove", this.handleMouseMove);
}
오류 :
당신은 너무처럼initialize
에
_.bindAll(this)
을 할 필요가
Uncaught TypeError: Cannot read property 'handleEvent' of undefined (09:32:29:386 | error, javascript)
at b.dispatchEvent (public_html/js/libs/easeljs-0.6.1.min.js:14:447)
at b._handlePointerMove (public_html/js/libs/easeljs-0.6.1.min.js:88:490)
at b._handleMouseMove (public_html/js/libs/easeljs-0.6.1.min.js:88:69)
at c.mousemove.f (public_html/js/libs/easeljs-0.6.1.min.js:87:34)
감사합니다. 내 문제를 해결 한 것 같습니다. 렌더링 함수를 깨끗하고 빠르게 유지하기 위해 이벤트 바인딩을 initialize 함수로 옮겼습니다. – Josh