O metodo prevFrame() faz o swf retorna um quadro cada vez que e chamadoSimples, nao? Entao e so jogar ele num enterframe e mandar ver na animacao. Esse codigo deve ser postado em qualquer lugar que voce queira finalizar a animacao E retornar a animacao ao seu frame um, fazendo um efeito de "reverseframe"PS: o play() ali e so para exemplo, pra ele rodar em looping :Pstop();this.onEnterFrame = function(){ prevFrame(); if (this._currentframe<2){ delete this.onEnterFrame play(); }} Para esse exemplo voce vai precisar de quatro campos de texto do flash, sendo tres de input e um dinamico, e o componente "mcTween" instalado na sua maquina. Voce pode criar via action ou inserindo diretamente no stage; para agilizar o processo, vou presumir que voce criou eles via stage mesmo.Primeira coisa a fazer: Jogar um campo de texto dinamico e embedar fontes nele; Embede as fontes naquele botaozinho de "Embed..." ali no canto, no painel de propriedades.Nao va me cometer o erro de clicar em "All (39477 glyphs)", primeiro porque voce vai colocar fontes de um pais que provavelmente nunca esta no mapa; segundo, porque isso gera peso desnecessario no swf final [acredite, eu tive dores de cabeca enormes com isso]Clique, com a tecla "Ctrl" pressionada, nos campos Uppercase, Lowercase, Numerals, Punctuation, Basic Latin e laaaa no meio Basic Latin IAinda temos apenas um campo de texto dinamico. Copie ele outras tres vezes, e mude o tipo do campo de texto para "input"Depois nomeie esses campos de texto para "nome_txt", "email_txt", "msg_txt".Um nome para cada no instance name.E naquele primeiro campo de texto dinamico voce nomeia ele como "msgError_txt"Agora te prepara, la vamos nos ao codigo gigante, em versao action script://funcoes para setar o focus dos campos de textofunction intervalNome(){ var clearMsgError = setInterval(function(){ msgError_mc.msgErros_txt.text = ''; Selection.setFocus(nome_txt) clearInterval(clearMsgError) },2000)}function intervalEmail(){ var clearMsgError = setInterval(function(){ msgError_mc.msgErros_txt.text = ''; Selection.setFocus(email_txt) clearInterval(clearMsgError) },2000)}function intervalMsg(){ var clearMsgError = setInterval(function(){ msgErros_txt.text = ''; Selection.setFocus(msg_txt) clearInterval(clearMsgError) },2000)}//funcao para o envio da mensagem do conteudo dos campos de textomsgErros_txt._alpha = 0function sendMessage() { if (nome_txt.text == '') { msgErros_txt.text = 'Por favor, preencha o campo de nome corretamente'; msgErros_txt.alphaTo(100,.5,"easeInOutExpo",0,function(){ msgErros_txt.alphaTo(0,.5,"easeInOutExpo",2) intervalNome() }) } else if(email_txt.text == ''){ msgErros_txt.text = 'Por favor, preencha o campo de e-mail corretamente'; msgErros_txt.alphaTo(100,.5,"easeInOutExpo",0,function(){ msgErros_txt.alphaTo(0,.5,"easeInOutExpo",2) intervalEmail() }) }else if(msg_txt.text == ''){ msgErros_txt.text = 'Por favor, digite sua mensagem'; msgErros_txt.alphaTo(100,.5,"easeInOutExpo",0,function(){ msgErros_txt.alphaTo(0,.5,"easeInOutExpo",2) intervalMsg() }) }else{ var env:LoadVars = new LoadVars(); env.onLoad = function(success:Boolean) { if (success) { msgErros_txt.text = 'Sua mensagem foi enviada com sucesso'; msgErros_txt.alphaTo(100,.5,"easeInOutExpo",0,function(){ nome_txt.text = "" email_txt.text = "" msg_txt.text = "" msgErros_txt.alphaTo(0,.5,"easeInOutExpo",2) }) } else { msgErros_txt.htmlText = 'A mensagem nao pode ser enviada. Por favor, tente novamente'; msgErros_txt.alphaTo(100,.5,"easeInOutExpo",0,function(){ msgErros_txt.alphaTo(0,.5,"easeInOutExpo",2) }) } }; env.nome = nome_txt.text; env.email = email_txt.text; env.mensagem = msg_txt.text; env.sendAndLoad('formulario.php', env, 'POST'); }}enviar_mc.onPress = function() { sendMessage()};Esse treco gigante ai faz o seguinte, em portugol:Verifica se o campo de texto 'nome' esta vazio; se sim, coloque o foco nele;Verifica se o campo de texto 'email' esta vazio; se sim, coloque o foco nele;Verifica se o campo de texto 'msg' esta vazio; se sim, coloque o foco nele;Em todos os campos avise o