Animação de texto dinâmico em AS3
Yo! Que saudade daqui, eu sei que “fechei oficialmente” o blog, mas é que eu não podia deixar de escrever o que tenho passado os últimos mêses. Vou direto ao ponto.
TextAnim é uma classe para animação de texto dinâmico em Flash – ActionScript 3. É baseada em eventos, não possui tween, apenas quebra o texto em blocos (letras, palavras ou linhas) fazendo com que cada bloco seja um Sprite, depois disso ela dispara esses blocos na sequência e intervalo definidos. Você só precisa passar um TextField com a fonte embedada e dizer qual efeito (function) quer aplicar. Veja um rápido exemplo: [Download do exemplo com código]
Criando uma instância de TextAnim:
1 2 3 | import flupie.textanim.*; var myTextAnim:TextAnim = new TextAnim(myTextField); |
Nesse trexo de código, eu apenas crio uma instância passando um TextField no construtor, é precisso garantir que o embed da fonte esteja aplicado. Depois disso você pode especificar algumas propriedades, como por exemplo:
1 2 3 4 | myTextAnim.text = "DYNAMIC TEXT ANIMATION"; myTextAnim.interval = 40; myTextAnim.effects = myEffectFunction; myTextAnim.start(); |
Aqui definimos que a TextAnim irá disparar os blocks num intervalo de 40ms, chamando a função myEffectFunction, que receberá um block como parâmetro, do tipo TextAnimBlock:
1 2 3 4 5 | function myEffectFunction(block:TextAnimBlock):void { block.alpha = 0; block.y = block.posY + 20; Tweener.addTween(block, {alpha:1, y:block.posY, time:.5}); } |
Aqui é onde tudo acontece, no método que será o efeito é necessário receber o block, isso representa cada pedaço do texto, sendo do tipo TextAnimBlock, um TextAnimBlock é bastante importante porque tem algumas propriedades para conseguirmos fazer os efeitos. A TextAnim não se importa com o efeito em si, isso fica por sua conta, é possível criar qualquer coisa.
Todo block (TextAnimBlock) tem as propriedades posX e posY que guardam a real posição (x, y) do block de texto, independente do alinhamento, tamanho e espaçamento de letras, com isso é possível jogar os blocos de texto pra qualquer lugar e depois tweenar de volta. Como a TextAnim não movimenta os blocos, ou seja, não tem engine de tween embutida, você pode usar qualquer uma, dependendo do que você quiser fazer.
Tem sido muito útil pra gente e espero que ajude, se tiver qualquer dúvida pode pegar a documentação (em inglês) e também o gerador de código, chamado TextAnim Maker.
Comments off