2014-07-24 7 views
0
bunny.mousedown = function(mouseData){ 
    text.setText(mouseData.global.x); 
} 

'setText'부분은 누군가가 버니 스프라이트를 누르면 호출됩니다. PIXIjs를 사용하고 있습니다.자바 스크립트 콜백/이벤트

안녕하세요. JS에 익숙하지 않아이 코드를 이해하는 데 약간의 어려움이 있습니다. 내가 아는 한, JS의 모든 것이 기능을 포함하는 객체이다. 경험이있는 다른 언어에서는 이런 종류의 이벤트 리스너 만 사용합니다.

Mousedown은 콜백 함수이거나 설명서에 표시되어 있습니다. I 생각해 보면 콜백 기능을 이해합니다. 그러나, 나는 위의 코드에서 어떻게 구현되는지 혼란 스럽다.

function display(s , callb){ 
    alert(s); 
    callb(1 , 2); 
} 

function add(q, r){ 
    alert((q + r).toString()); 
} 

display("amidoindisrite?", add); 

callb 어쨌든, 나는 매우 상단에있는 코드/실행 호출되는 방법을 이해하지 않는, 콜백 함수가 될, 내가 생각 ...하지만 것입니다. 누구든지 아이디어가 있습니까? Java 또는 Python이 있으면 해당되는 것은 무엇입니까? 감사.

답변

0

두 번째 예에서 callb은 함수 또는 원하는 경우 함수 정의에 대한 포인터입니다. 그 뒤에 괄호를 적용하면 제공된 매개 변수 (이 경우 정수 1과 2)를 사용하여 함수를 실행합니다. 콜백을 실행하는 다른 방법은 call()apply() 메소드입니다.

첫 번째 예에서 mousedown 속성은 콜백, 즉 함수 정의 값을 필요로합니다. 이 예에서는이 mousedown 속성에 할당 된 함수를 정의합니다. mousedown 이벤트가 bunny 개체에 대해 트리거되면 mousedown 속성이 실행됩니다 (괄호, call() 또는 apply(), 이는 Pixjs 라이브러리에 따라 다름). 이 속성은 정의 된 함수이며 text.setText 메서드가 실행됩니다.

분명히 밝힙니다.

+0

감사합니다. 나는 당신의 대답을 몇 번 읽었으며 이제는 완벽하게 이해합니다. 문서에서 mousedown은 방법이 아니라는 것을 알기 때문에 처음부터 혼란 스러웠습니다. 그러나 mousedown이 변수 일 경우 함수에 대한 포인터 역할을하며 PIXI 내부에서 이벤트로 호출됩니다. – user3279266