"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > After Effects: bucles while

After Effects: bucles while

Publicado el 2024-11-06
Navegar:529

After Effects: While Loops

Contenido

  • Introducción
  • bucles while versus declaraciones if
  • Bucles while versus bucles for
  • Cuándo utilizar los bucles while
  • Conclusión

Introducción

Divulgación completa: odio los bucles while. Me ha tomado mucho tiempo entenderlos, pero creo que finalmente entiendo su propósito.

Al principio, cada vez que intentaba escribir mi propio bucle while, After Effects se bloqueaba inmediatamente. Ahora que tengo un poco más de conocimiento sobre lo que salió mal, quiero escribir qué es un bucle while, cuándo usarlo y cómo puedes incorporarlo en tus expresiones de After Effects sin bloquear tu proyecto (recuerda guardarlo regularmente). amigos).

bucles while versus declaraciones if

Un bucle while, como su nombre indica, es un bucle que se ejecuta siempre que la expresión sea verdadera.

"Se ejecuta siempre que la expresión sea verdadera": eso suena un poco como una declaración if, ¿no es así?

if (time 



Si agrega esta expresión a la propiedad Texto de origen de una capa de texto, encontrará que el texto dice "Texto activado" durante los primeros 2 segundos de su línea de tiempo y no muestra ningún texto después de ese tiempo. Una declaración if verifica si una expresión es verdadera o no, y si lo es, ejecuta el comando una vez, y solo una vez.

Sin embargo, si lo cambia a esta expresión, encontrará que After Effects falla casi de inmediato:

while (time 



Esto se debe a que el bucle while es un bucle, por lo que ejecuta el comando repetidamente si la declaración es verdadera. Mientras el cursor esté en los primeros 2 segundos de la línea de tiempo, el bucle while se repetirá infinitamente. ¡No es exactamente lo ideal y ciertamente no es lo que estábamos tratando de lograr! Es importante asegurarse de que su bucle while eventualmente se vuelva falso para evitar estos bucles infinitos.

Para obtener más información sobre las declaraciones if, consulte mi artículo anterior aquí.

bucles while versus bucles for

Bien, es importante tener en cuenta que no se deben utilizar bucles while como declaraciones if. Pero existen otros tipos de bucles que podemos utilizar para crear expresiones. ¿En qué se diferencia un bucle while de un bucle for, por ejemplo?

Un bucle for funciona con 3 argumentos y es ideal cuando sabes cuántas veces necesitas repetir tus comandos.

Tome este ejemplo, generando números aleatorios:

//variables
let counter = 0;
let num = 0;
let numArray = [];

//For loop
for (let i = 0; time >= i/2; i  ) {
    seedRandom(counter, timeless = true);
    num = Math.floor(random(1, 6));
    numArray.push(num);
    counter  
}

//return
numArray[counter - 1]

Después de configurar mis variables, el ciclo comienza con let i = 0, configurando el primer argumento que se ejecuta una vez. Luego, time >= i/2 establece con qué frecuencia se debe ejecutar el bucle. Configurar el bucle de esta manera significará que el bucle se ejecutará dos veces por segundo, porque el tiempo debe ser mayor o igual a la mitad de i. Finalmente, el tercer argumento lo ejecutaré cada vez después de ejecutar el ciclo. En este caso, el valor de i aumenta en 1.

Al ejecutar esta expresión nuevamente en la propiedad Texto de origen de una capa de texto, se mostrará un número aleatorio entre 1 y 5 dos veces por segundo.

Para obtener más información sobre los bucles for, consulta mi artículo anterior aquí.

Un bucle while se utiliza mejor cuando no sabes cuántas veces necesitarás ejecutar tu bucle. Debido a esto, descubrí que no funcionan bien con expresiones que involucran tiempo. Los bucles tipo for funcionan muy bien, ya que te atrapan en esos molestos bucles infinitos.

Entonces, ¿cuándo deberíamos usar bucles while?

Cuándo usar bucles while

Teniendo todo esto en cuenta, se debe utilizar un bucle while en estas condiciones:

  • Necesitamos ejecutar la expresión más de una vez
  • No sabemos cuantas veces necesitamos ejecutar nuestro bucle
  • Podemos romper el bucle, para evitar que se ejecute hasta el infinito

Recientemente encontré un uso para esto en After Effects, mientras trabajaba en mi proyecto de generador de números aleatorios.

Veamos el siguiente código:

//variables
let counter = 0;
let num = 0;
let numArray = [];

//For loop
for (let i = 0; time >= i/2; i  ) {
    seedRandom(counter, timeless = true);
    num = Math.floor(random(1, 6));

//While loop inside of For loop
        while (num == numArray[counter - 1]) {
        num = Math.floor(random(1, 6));
        }

    numArray.push(num);
    counter  
}

//return
numArray[counter - 1]

En este caso, el bucle while verifica si el valor actual de num es igual al valor anterior, almacenado en la matriz numArray. Si lo hace, genera un nuevo número aleatorio entre 1 y 5. El bucle se ejecutará siempre que num y el número anterior almacenado en la matriz sean iguales. Sin embargo, una vez que los números no coinciden, el ciclo while finaliza y la expresión puede continuar con la siguiente línea de código.

Porque puede que tenga que generar un nuevo número aleatorio más de una vez, una declaración if no funciona aquí.

Y como no sé cuántas veces tendré que actualizar el número aleatorio, el número de bucles también es un misterio: así que un bucle for tampoco sirve aquí.

Por lo tanto, un bucle while es mi mejor opción. Se ejecutará tantas veces como lo necesite, hasta que el argumento que contiene sea falso, lo que ciertamente sucederá siempre que la función random() genere un número que no coincida con el anterior.

Conclusión

En conclusión, es probable que los bucles while sean una herramienta poco común en su cinturón de expresión de After Effects. Sin embargo, es útil aprenderlos, en casos en los que los sospechosos habituales pueden no ser adecuados.

¿Te resultó útil? ¿Tiene un ejemplo del uso de un bucle while en su proyecto? ¿Me equivoqué en algo? Por favor déjame un comentario y házmelo saber.

Declaración de liberación Este artículo se reproduce en: https://dev.to/kocreative/after-effects- while-loops-447e?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3