Guía para registrar fotogramas de animación
Para registrar los fotogramas de una animación, siga los pasos siguientes:
- Abra la Terminal/SSH y escriba
node para comenzar a practicar la codificación.
- Utilice la recursividad para llamar a la devolución de llamada proporcionada en cada fotograma de animación.
- Si
running es true, siga llamando a Window.requestAnimationFrame(), que llama a la devolución de llamada proporcionada.
- Para permitir el control manual de la grabación, devuelva un objeto con dos métodos
start y stop.
- Omita el segundo argumento,
autoStart, para llamar implícitamente a start cuando se invoque la función.
Utilice el siguiente código para registrar los fotogramas de una animación:
const recordAnimationFrames = (callback, autoStart = true) => {
let running = false,
raf;
const stop = () => {
if (!running) return;
running = false;
cancelAnimationFrame(raf);
};
const start = () => {
if (running) return;
running = true;
run();
};
const run = () => {
raf = requestAnimationFrame(() => {
callback();
if (running) run();
});
};
if (autoStart) start();
return { start, stop };
};
Uso de ejemplo del código:
const cb = () => console.log("Animation frame fired");
const recorder = recordAnimationFrames(cb);
// muestra 'Animation frame fired' en cada fotograma de animación
recorder.stop(); // detiene la visualización
recorder.start(); // comienza de nuevo
const recorder2 = recordAnimationFrames(cb, false);
// se debe llamar explícitamente a `start` para comenzar a registrar los fotogramas