2014-03-25 3 views
1

HTML5 캔버스에서 게임 개발에 대한 기사를 읽었지만 어느 것도 보통 최적화되어 있지 않습니다. 여러 기사를 읽는 동안 자바 스크립트에서 주요 수신기가있는 여러 가지 방법을 발견했습니다. 우선 하나는 내가 찾은JavaScript의 주요 수신기 간의 차이점

window.addEventListener(
"keydown", 
eventReaction, 
false 
); 

두 번째는 내가

그들 사이의 차이점은 무엇
document.onkeydown = function(e) { 
//do stuff with this 
}; 

발견? 어느 것이 가장 사용하기에 가장 적합한가? deprecated 메소드를 사용하고 싶지는 않습니다. html5 캔버스에 적합한 것을 사용하고 싶습니다 ...이 질문이 잘못된 경우 -rep 나하지 말고 그냥 말해 주시면 제거하겠습니다.

+0

후자는 오래된 물건입니다. 'addEventListener'는 요즘 갈 길입니다. – A1rPun

+0

나는 canvas.addEventListener ("keydown", function r (e) {alert (e.keyCode);})를 깨달았지만, 왜 그런지 궁금하다. ... –

+0

요소 때문에 생각한다. 초점. 'window.addEventListener'에서 변경하면 작동합니다. – A1rPun

답변

1

HTMLElement에 직접 수신기를 지정하는 코드의 두 번째 부분입니다.
이 항목은 더 이상 사용되지 않지만 계속 진행되는 것은 아닙니다.

document.onkeydown = function(e) { 
//do stuff with this 
}; 

첫 번째 부분은 HTMLElement에 대한 수신기를 지정합니다. 이렇게하면 작업에 대해 여러 이벤트를 지정할 수 있습니다.
이것은 확실히가는 길입니다.

window.addEventListener("keydown",eventReaction,false); 

참고 : addEventListener은 최신 브라우저 지원 및 IE> 8

PS한다 : 나쁜 질문은 존재하지 않는, 오직 나쁜 응답)

+0

나는 정말 그랬 으면 좋겠어. 캔버스에만 eventlistener를 추가 할 수 있습니다 ... 나는'canvas.onkeypress'가 작동한다는 것을 알았습니다. 사용자가 캔버스를 사용할 때만 작동하지만 갈 길이 아닙니다 .... 감사합니다. 그리고 왜 나쁜 질문입니까? 내 옛날 계좌가 많이 생겨서 금지되어있어 새로운 계좌를 만들어야 만 했어. –

+0

대부분의 사람들이 [일반 규칙] (http://stackoverflow.com/help/on-topic)에서 질문을하고있다. 귀하의 질문이 너무 광범위하거나 주제를 벗어난다면 당신은 빨리 downvoted 것입니다. – A1rPun