vue react ejemplo cancelanimationframe javascript requestanimationframe

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)); }