Otimizando a animação do sistema de partículas do Flash CS3
Agora que temos o FlashR Animação de queda de neve do sistema de partículas CS3 funcionando exatamente como queremos, é hora de otimizar o código do programa de cenas de neve. Se você testou a animação que escrevemos nos tutoriais anteriores, provavelmente percebeu que, após algum tempo, a animação tende a afetar os recursos do seu computador. Neste tutorial, veremos algumas maneiras de tornar a animação mais eficiente.

Como o código está agora, estamos usando um Event Listener para escutar cada novo quadro da animação. Com cada novo quadro, a função floco de neve (manipulador de eventos) cria um novo floco de neve e o adiciona à lista de exibição do Flash. Em seguida, usamos Math.random () para randomizar a posição e as propriedades alfa deste floco de neve. Usamos um segundo Event Listener para chamar a função snowfall, novamente a cada novo quadro. A função queda de neve verifica se o floco de neve se moveu além da borda direita ou inferior do palco. Nesse caso, removemos o segundo Event Listener que repete a função de queda de neve. Isso faz com que um floco de neve pare de cair, enquanto os outros continuam a cair. A repetição da função floco de neve cria a animação da queda de neve. O que precisamos fazer agora é alterar o código para que seja mais eficiente.

Método Um

O primeiro método requer a adição de apenas uma linha de código ao nosso programa. Já temos uma declaração condicional dentro da função de queda de neve que verifica se o floco de neve foi além do palco e, nesse caso, remove o ouvinte de eventos e impede que o floco de neve caia.
O floco de neve para de se mover, mas ainda é visível na parte inferior do palco. Como ainda está visível e ainda está na lista de exibição, o Flash ainda gasta recursos neste floco de neve. Se removermos o floco de neve da lista de exibição, ele liberará os recursos e a animação será mais eficiente. Para remover os flocos de neve que não são mais necessários na lista de exibição, podemos adicionar um código removeChild à instrução condicional.

if (_Snowflake.y> 370 || _Snowflake.x> 550)
{
stage.removeEventListener (Event.ENTER_FRAME, queda de neve);
removeChild (_Snowflake);
}
outro
{_Snowflake.y + = 5; _Floco de neve.x + = Math.random () * 10; }


Quando você testa seu filme, os flocos de neve desaparecem quando atingem a borda direita ou inferior do palco e a animação é mais eficiente.

Próximo →

Direitos autorais 2018 Adobe Systems Incorporated. Todos os direitos reservados. As capturas de tela do produto Adobe foram impressas com permissão da Adobe Systems Incorporated. Adobe, Photoshop, Álbum do Photoshop, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fireworks, Contribute, Captivate, Flash Catalyst e Flash Paper é / é [a] marca registrada ou marca comercial da Adobe Systems Incorporated nos Estados Unidos e / ou em outros países.