javascript - react - requestanimationframe vs setinterval
¿Cómo puedo pasar argumento con requestAnimationFrame? (2)
En el programa principal, elijo aleatoriamente un objeto que me gustaría animar, así que llamo a la función con el objeto como argumento. El primer bucle está bien, X está finamente establecido, pero en el próximo turno se vuelve indefinido.
Algo como esto:
var anim = {
mainFunc: function(x) {
anim.update(x);
anim.redraw(x);
window.requestAnimationFrame(anim.mainFunc);
},
update: function(x) {
},
redraw: function(x) {
}
};
var n=Math.floor(Math.random() * (ArrayOfAnimObject.length));
anim.mainFunc(ArrayOfAnimObject[n]);
O bien necesita crear una referencia o ajustar la llamada a la función en otra función como esta:
mainFunc: function(x) {
anim.update(x);
anim.redraw(x);
window.requestAnimationFrame(function() {
anim.mainFunc(x);
});
}
También puedes usar .bind
.
mainFunc: function(x) {
anim.update(x);
anim.redraw(x);
window.requestAnimationFrame(anim.mainFunc.bind(anim,x));
}