Na prática, símbolos do flash são a base de tudo
Quando você abre o Flash (agora Animate), aparece uma paleta chamada Símbolos, com três tipos principais: gráfico, filme e botão. A maioria dos iniciantes trata os três como intercambiáveis. Isso está errado desde o início. O tipo que você escolhe define como o objeto vai se comportar em tempo de execução e como o navegador vai processá-lo quando o projeto for exportado.
O que você precisa saber sobre símbolos do flash
Um símbolo gráfico é basicamente um trecho de animação que se encaixa na linha do tempo do palco principal. Ele não tem independência. Se você usar um símbolo gráfico com três quadros de animação dentro dele, essa animação só se move quando a timeline do filme inteiro avança. Isso parece óbvio, mas gera um problema chato que vejo todo dia nos fóruns: alguém cria uma animação dentro de um símbolo gráfico, coloca cinco cópias no palco, e depois se pergunta por que só uma delas se move quando o filme é publicado. Já o símbolo de filme tem sua própria timeline independente. Ele continua animando mesmo se a timeline principal parar. Eu levei uns dois anos pra entender a diferença prática entre usar um ou outro, porque tecnicamente ambos resolvem o problema da reutilização. A diferença é timing e performance. Quando eu estava trabalhando num projeto de banner publicitário, precisava que um efeito de chuva continuasse rodando mesmo quando o resto da animação parava. Usei símbolo gráfico e a chuva travava junto com o texto animado do banner. Troquei para símbolo de filme e resolveu em dez segundos. Simples assim.
Botões são outra história. Eles têm quatro estados definidos: up, over, down e hit. O estado hit é o que ninguém configura e é o motivo de muitos botões parecerem que "não respondem" ao mouse. A área de hit padrão é invisível e frequentemente menor que a forma visível. Eu resolvi isso adicionando um retângulo preenchido na camada de hit do símbolo de botão, garantindo que toda a área clicável estivesse coberta. O segundo tipo de erro mais comum é a confusão entre converter em símbolo e criar um novo a partir do zero. Selecionar um objeto e pressionar F8 é rápido, mas o Flash costuma centralizar o símbolo no ponto de regência de forma errada. Se você não ajustar manualmente o ponto de regência antes de converter, toda instância desse símbolo vai nascer com a origem deslocada em relação ao desenho. Isso é particularmente problemático quando você está fazendo rotação ou escala das instâncias, porque o ângulo de transformação vai começar de um lugar errado.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Performance é outro ponto que poucos levam a sério. Cada símbolo de filme na timeline gera um objeto separado na memória durante a execução. Se você colocar trinta símbolos de filme diferentes com animações complexas no palco, o player do Flash vai processar trinta timelines paralelamente. Eu vi um projeto de apresentação institucional com cerca de cinquenta símbolos de filme e a animação travava em 480p em laptops básicos. A solução foi substituir os símbolos de filme por símbolos gráficos sempre que possível e usar apenas film clips onde a independência de timeline era realmente necessária. A hierarquia de symbols também merece atenção. Símbolos podem conter outros símbolos. Isso é poderoso, mas fácil de exagerar. Eu já vi pastas de símbolos com cinco níveis de aninhamento, onde uma instância de símbolo continha outra instância que continha mais outra. Isso não melhora o desempenho. Pelo contrário, cada nível de aninhamento adiciona uma camada de transformação e processamento que o motor gráfico precisa calcular. Símbolos aninhados ficam úteis apenas quando você está construindo um sistema modular de componentes, como um kit de UI com ícones que se repetem em dezenas de telas.
O cache como bitmap é uma opção que muitos ignoram e que resolve metade dos problemas de performance em projetos com muitos símbolos. Na propriedade de uma instância, existe a opção "Cache como Bitmap". Quando ativada, o Flash renderiza o símbolo uma vez e armazena o resultado como textura. Isso é especialmente útil para símbolos com filtros, gradiente ou efeitos de transformação aplicados, porque evita que o motor recalcul essas operações a cada frame. O efeito colateral é que símbolos muito grandes ou que mudam drasticamente de forma podem ficar visualmente estranhos. Use com moderação e sempre teste no dispositivo alvo. Exportar para ação script também é uma configuração que passa despercebida. Toda vez que você cria um símbolo e quer controlá-lo via ActionScript, precisa marcar a caixa de exportação para ActionScript na configuração do símbolo. Se esquecer isso, o código simplesmente não reconhece o símbolo como classe disponível. Eu perdi umas três horas numa manhã inteira debugando um erro de referência nula porque esqueci de marcar essa caixa. O Flash não avisa nada. Apenas funciona como se o símbolo não existisse.
A versão do Flash também influencia o comportamento dos símbolos. Projetos criados em versões mais antigas e abertos em versões recentes às vezes apresentam símbolos com timeline corrompida ou frames extras fantasmas. Sempre faça backup antes de atualizar projetos antigos, especialmente se houver muitos símbolos aninhados ou bibliotecas muito grandes. Os símbolos do flash são basicamente blocos de construção reutilizáveis dentro do Flash. Cada tipo tem seu propósito, e entender quando usar um em vez do outro faz diferença real no resultado final. A maioria dos erros começa com a escolha errada do tipo de símbolo ou com a configuração incorreta do ponto de regência. Preste atenção nesses dois detalhes antes de construir animações mais complexas.