캔버스 내부에서 일부 볼을 이동시키는 간단한 JavaScript 애니메이션을 작성하고 싶습니다. Backbone.js로 처리되는 커스텀 이벤트와 충돌을 감지하기 위해서 각 공 쌍 사이의 충돌을 검사하는 루프의 중첩 된 을 가지고 싶습니다.Backbone.js의 맞춤 이벤트 전달
var j;
for (j = 0; j < N_BALLS; j++) {
ball_center = new Point(..., ...);
ball_shape = new Circle(ball_center, ball_radius);
ball_velocity = ...;
ball_ID = j;
balls[j] = new Ball(ball_shape, ball_velocity, ball_ID);
_.extend(balls[j], Backbone.Events);
balls[j].on("imhere", balls[j].event_handler);
}
function animate() {
if (!paused) {
context.clearRect(0, 0, canvas.width, canvas.height);
var j;
for (j = 0; j < N_BALLS; j++){
balls[j].updatePosition();
balls[j].trigger("imhere", balls[j].shape, balls[j].ID);
}
for (j = 0; j < N_BALLS; j++)
balls[j].draw(context, '#0000ff');
window.requestNextAnimationFrame(animate);
}
}
event_handler는 각각의 볼 개체
Ball.prototype.event_handler = function(shape, ID) {
console.log("ball " + this.ID + " caught message from ball " + ID);
};
가끔 볼 다른 하나에서 하나의 메시지를 잡는다 것을 기대의 멤버 방법이지만이 경우는 결코 없다.
나는 그런 방식으로 일을 준비하고자하는 경우 이벤트 핸들러 할 수 있습니다
앞으로- 행사 때
this.ID == ID
- 정지 이벤트 전파