"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > After Effects: Enquanto Loops

After Effects: Enquanto Loops

Publicado em 2024-11-06
Navegar:503

After Effects: While Loops

Conteúdo

  • Introdução
  • loops while versus instruções if
  • enquanto Loops Vs for Loops
  • Quando usar loops while
  • Conclusão

Introdução

Divulgação completa: eu odeio loops while. Levei muito tempo para entendê-los, mas acho que finalmente entendi seu propósito.

No começo, toda vez que eu tentava escrever meu próprio loop while, travava o After Effects imediatamente. Agora que tenho um pouco mais de conhecimento sobre o que deu errado, quero escrever o que é um loop while, quando usá-lo e como você pode incorporá-lo em suas expressões do After Effects sem travar seu projeto (lembre-se de salvar regularmente, pessoas).

while Loops Vs instruções if

Um loop while, como o nome sugere, é um loop que é executado enquanto a expressão for verdadeira.

"Executa enquanto a expressão for verdadeira" - isso soa um pouco como uma instrução if, não é?


if (tempo if (time Se você adicionar esta expressão à propriedade Texto de origem de uma camada de texto, descobrirá que o texto é "Text On" durante os primeiros 2 segundos da sua linha do tempo e não exibe nenhum texto após esse período. Uma instrução if verifica se uma expressão é verdadeira ou não e, se for, executa o comando

uma vez, e apenas uma vez.

No entanto, se você alterasse para

esta, descobriria que o After Effects travava quase imediatamente:

while (tempo if (time Isso ocorre porque o loop while

é um loop, então ele executa o comando repetidamente se a afirmação for verdadeira. Contanto que o cursor esteja nos primeiros 2 segundos da linha do tempo, o loop while fará um loop infinitamente. Não é exatamente o ideal e certamente não é o que estávamos tentando alcançar! É importante ter certeza de que seu loop while eventualmente se tornará falso, para evitar esses loops infinitos.

Para obter mais informações sobre instruções if, consulte meu artigo anterior aqui.

enquanto Loops Vs para Loops

Ok, então é importante observar não usar loops while como instruções if. Mas existem outros tipos de loops que podemos usar para criar expressões. Como um loop while difere de um loop for, por exemplo?

Um loop for funciona com 3 argumentos e é ideal quando você

sabe quantas vezes precisa repetir seus comandos.

Veja este exemplo, gerando números aleatórios:


//variáveis deixe contador = 0; seja num = 0; deixe numArray = []; //Para loop for (seja i = 0; tempo >= i/2; i ) { seedRandom(contador, atemporal = verdadeiro); num = Math.floor(random(1, 6)); numArray.push(num); contador } //retornar numArray[contador - 1]
if (time Depois de configurar minhas variáveis, o loop começa com let i = 0, definindo o primeiro argumento que executa 

uma vez. Então, time >= i/2 estabelece com que frequência o loop deve ser executado. Definir o loop dessa maneira significa que ele será executado duas vezes por segundo, porque o tempo precisa ser maior ou igual à metade de i. Finalmente, o terceiro argumento será executado todas as vezes após a execução do loop. Neste caso, o valor de i aumenta em 1.

Executar esta expressão novamente na propriedade Texto Fonte de uma camada de texto exibirá um número aleatório entre 1 e 5 duas vezes a cada segundo.

Para obter mais informações sobre loops for, consulte meu artigo anterior aqui.

Um loop while é melhor usado quando você

não sabe quantas vezes seu loop precisará ser executado. Por causa disso, descobri que eles não funcionam bem com expressões que envolvem tempo como os loops for, funcionam tão bem, pois prendem você naqueles incômodos loops infinitos. Então, quando

devemos

usar loops while? Quando usar loops while

Tendo tudo isso em mente, um loop while deve ser usado nestas condições:

Precisamos executar a expressão mais de uma vez
  • Não sabemos quantas vezes precisamos executar nosso loop
  • Somos capazes de quebrar o loop, para evitar que ele seja executado até o infinito
  • Recentemente encontrei um uso para isso no After Effects, enquanto trabalhava em meu projeto de gerador de números aleatórios.

Vejamos o seguinte código:


//variáveis deixe contador = 0; seja num = 0; deixe numArray = []; //Para loop for (seja i = 0; tempo >= i/2; i ) { seedRandom(contador, atemporal = verdadeiro); num = Math.floor(random(1, 6)); //While loop dentro do loop For while (num == numArray[contador - 1]) { num = Math.floor(random(1, 6)); } numArray.push(num); contador } //retornar numArray[contador - 1]

//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]

Porque eu

posso ter que gerar um novo número aleatório mais de uma vez

, uma instrução if não funciona aqui. E porque eu

não sei quantas vezes precisarei atualizar o número aleatório

, o número de loops também é um mistério: então um loop for também não é bom aqui. Portanto, um loop while é minha melhor opção. Ele será executado quantas vezes eu precisar,

até que o argumento dentro dele seja falso

, o que certamente acontecerá enquanto a função random() gerar um número que não corresponda ao anterior. Conclusão

Concluindo, os loops while provavelmente serão uma ferramenta incomum em seu cinto de expressão do After Effects. No entanto, são úteis para aprender, nos casos em que os suspeitos do costume podem não ser adequados.

Você achou isso útil? Você tem um exemplo de uso de um loop while em seu projeto? Eu entendi algo errado? Por favor, deixe-me um comentário e me avise.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/kocreative/after-effects-while-loops-447e?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3