Comment puis-je passer l'argument avec requestAnimationFrame?
Dans le programme principal je choisir au hasard un objet que je voudrais animer, j'ai donc appeler la fonction avec l'objet comme argument. La première boucle est ok, X est finement réglé, mais au prochain tour, il devient indéfini.
quelque Chose comme ceci:
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]);
16
demandé sur
user2735841
2013-11-10 22:23:58
2 réponses
vous devez soit créer une référence ou envelopper l'appel de fonction dans une autre fonction comme ceci:
mainFunc: function(x) {
anim.update(x);
anim.redraw(x);
window.requestAnimationFrame(function() {
anim.mainFunc(x);
});
}
35
répondu
kalley
2018-04-18 06:59:10
Vous pouvez également utiliser .bind
.
mainFunc: function(x) {
anim.update(x);
anim.redraw(x);
window.requestAnimationFrame(anim.mainFunc.bind(anim,x));
}
14
répondu
Archy Wilhes 魏何
2015-11-08 08:09:20