Was bewirkt, dass der Rest der Schleife ausgeführt werden kann und dann für requestAnimationFrame das nächste Frame ausgeführt wird?Warum verursacht der Aufruf von requestAnimationFrame am Anfang einer Schleife keine unendliche Rekursion?
Ich verstehe nicht, wie diese Methode funktioniert und kann nirgends eine klare Erklärung sehen. Ich habe versucht, die Timing-Spezifikation hier http://www.w3.org/TR/animation-timing/ zu lesen, aber ich konnte nicht herausfinden, wie es funktionierte.
Edit:
Zum Beispiel dieser Code von der threejs Dokumentation entnommen wird.
var render = function() {
requestAnimationFrame(render);
cube.rotation.x += 0.1;
cube.rotation.y += 0.1;
renderer.render(scene, camera);
};
Können Sie bitte einen Code posten? –
[Anfrage Animationsrahmen für bessere Leistung] (http://html5hub.com/request-animation-frame-for-better-performance/), [requestAnimationFrame für Smart Animating] (http://www.paulirish.com/2011/requestanimationframe-for-smart-animating /) – Andreas
requestAnimationFrame ist nicht rekursiv, es ist async (wie ein kurzes setTimeout, aber effizienter) und wird nach dem Rumpf der Funktion ausgeführt, in der es aufgerufen wird. Es macht jedoch wenig Sinn, es zu setzen es in einer for-Schleife. Die Rekursion geschieht in der Renderfunktion, nicht in requestAnimationFrame übrigens, Sie rufen render nicht in render auf. – mpm