Fala ae Pessoal!
Após colocar um formulário em meu site, muitos colegas me perguntaram como funcionava e mencionaram da possibilidade de fazer um tutorial a respeito.
Bom aqui estou, mostrarei como criar um *.swf que capta informações de caixas de texto, envia o formulário para o administrador e responde automaticamente para o cliente.
Vale frisar que para o funcionamento deste formulário é necessário que o servidor local dê suporte para arquivos *.php.
Começaremos pelo arquivo do Flash:
Criaremos tudo dentro de um movie clip instanciado de "email" (sem áspas), para que vocês possam usá-lo em outras ocasiões utilizando apenas a cópia do movie clip.
1. Crie um movie clip e o instancie de "email" (sem aspas), o movie clip todo tem 123 quadros.
Este movie clip contém seis camadas.
botãoTAB
ações
nomenosquadros
avisos
botões
caixadetexto
botãoTAB:
Crie um botão e coloque-o fora do palco. Coloque as seguintes linhas de actionscript nele:
on (keyPress "<Tab>")
{
if (Selection.getFocus() == null) {
Selection.setFocus("_level0.email.inputNome");
} else if (Selection.getFocus() == "_level0.email.inputMensagem")
{
Selection.setFocus("_level0.email.inputNome");
} else if (Selection.getFocus() == "_level0.email.inputTel")
{
Selection.setFocus("_level0.email.inputMensagem");
} else if (Selection.getFocus() == "_level0.email.inputCidade")
{
Selection.setFocus("_level0.email.inputEstado");
} else if (Selection.getFocus() == "_level0.email.inputEmail")
{
Selection.setFocus("_level0.email.inputTel");
} else if (Selection.getFocus() == "_level0.email.inputEstado")
{
Selection.setFocus("_level0.email.inputEmail");
} else if (Selection.getFocus() == "_level0.email.inputNome")
{
Selection.setFocus("_level0.email.inputCidade");
}
}
Este código seta a tecla TAB para mover o cursor para o próximo campo.
ações:
No primeiro quadro insira stop();
No quadro 55, crie um quadro-chave em branco e coloque a ação:
gotoAndStop("start");
No quadro 56, crie outro quadro-chave em branco e insira:
verifica = 0;
No quadro 72 coloque:
if (verifica == 1) {
gotoAndPlay(57);
} else {
gotoAndPlay("valido");
}
No quadro 123 coloque:
inputNome = "";
inputCidade = "";
inputEstado = "";
inputEmail = "";
inputTel = "";
inputMensagem = "";
_root.email.callback.gotoAndStop(1);
gotoAndStop("start");
nomenosquadros:
No primeiro quadro, selecione-o e abra a caixa de propriedades.
Nomeie o quadro de "start" - sem áspas.
No quinto quadro, nomeie "invalido" - idem.
No 57º, nomeie "verifica" - idem. E insira uma imgem no palco de "verificando dados", por exemplo.
No 73º, nomeie "valido" - idem.
avisos:
Do 5º ao 55º coloque uma imagem de erro indicando a falta no preenchimento dos campos obrigatórios.
No 73º coloque outra imagem, desta vez, agradecendo o cliente pelo preenchimento. Afinal de contas é um saco ficar preenchendo formulários né? =)
botões:
Crie dois botões - Enviar e Limpar
No botão Enviar insira:
on (release) {
if (inputNome ne "" and inputEmail ne "" and inputMensagem
ne "") {
loadVariablesNum("email.php", 0, "POST");
gotoAndPlay("verifica");
} else {
gotoAndPlay("invalido");
}
}
Neste caso estamos verificando se os campos obrigatórios (no caso - nome, email e mensagem) mencionados foram preenchidos, caso contrário o filme é encaminhado para o frame "invalido".
No botão Limpar insira:
on (release) {
inputNome = "";
inputCidade = "";
inputEstado = "";
inputEmail = "";
inputTel = "";
inputMensagem = "";
_root.email.callback.gotoAndStop(1);
}
Aqui, estaremos fazendo com que as caixas de texto tenham seus campos limpos ou esvaziados.
caixadetexto:
Insira 8 caixas de texto no modo input text onde duas delas, com as variáveis setadas de inputCallback (aqui, veremos logo à frente, um botão de escolha que usará esta variável) e action estejam fora do palco.
As outras seis caixas de texto e suas variáveis são:
inputNome;
inputCidade;
inputEstado;
inputEmail;
inputTel;
inputMensagem.
Agora, nesta mesma camada, crie um movie clip e o instancie de "callback" (sem áspas). Este mc possui duas camadas e dois quadros.
Na primeira camada e primeiro quadro insira a ação stop();
Na segunda camada e primeiro quadro, crie um botão no estado vazio (imagem sem preenchimento) e coloque a seguinte ação nele:
on (release) {
nextFrame();
_root.email.inputCallback = "yes";
}
Isto faz com que ao clicá-lo a mensagem "yes" aparecerá na caixa de texto situada fora do palco com a variável inputCallback e moverá o filme para o próximo quadro;
Ainda na segunda camada mas no 2º quadro, crie outro botão no estado cheio (com imagem preenchendo-o) e insira as seguintes linhas de actionscript:
on (release) {
prevFrame();
_root.email.inputCallback = "no";
}
Aqui, estaremos enviando para a variável inputCallback o valor "no" - que seria como se desmarcássemos a opção de "urgência" de resposta, por exemplo. No meu formulário serviu para que os internautas me deixassem saber se havia interesse de serem comunicados sobre o lançamento de meu livro.
No flash, terminamos. Partiremos agora para a criação do arquivo email.php:
Abra o bloco de notas e insira:
<?
$cabecalho = "From: Seu nome <seu@email.com.br>
";
// Seu email aqui
$emailadmin = "seu@email.com.br";
// seu site
$siteadmin ="http://www.seusite.com.br";
// O nome da companhia
$nomesite = ".Seu nome";
// pega a data do servidor
$date = date("m/d/Y H:i:s");
// Pega o IP cliente - este aqui era pra ser segredo! hehehe
if ($REMOTE_ADDR == "") $ip = "no ip";
else $ip = getHostByAddr($REMOTE_ADDR);
//Processa e envia as informações coletadas no flash para
o seu email
//IF ($action != "")
//{
$mens .= "Opinião sobre conteúdo do livro
";
$mens .= "Nome: $inputNome
";
$mens .= "Cidade: $inputCidade
";
$mens .= "Estado: $inputEstado
";
$mens .= "Email: $inputEmail
";
$mens .= "Telefone: $inputTel
";
$mens .= "Saber sobre o lançamento? : $inputCallback
";
$mens .= "Mensagem: $inputMensagem
";
$mens .= "------------------------------
";
$mens .= "Informações:
";
$mens .= "Usando: $HTTP_USER_AGENT
";
$mens .= "Hostname: $ip
";
$mens .= "Endereço de IP: $REMOTE_ADDR
";
$mens .= "Data/Hora: $date
";
mail("$emailadmin","Aqui o assunto do formulário","$mens","$cabecalho");
echo "&verifica=1";
//Aqui envia um email de confirmação para o usuário
mail("$inputEmail","Obrigado por visitar $nomesite","NONONonONONonoNONonon
n ono non ononon onono nono no nonon on","$cabecalho");
//Confirmação que o flash recebe
$sendresult = "Done!";
$send_answer = "answer=";
$send_answer .= rawurlencode($sendresult);
// echo "$send_answer";
//}
?>
Salve-o como email.php e pronto! Temos um formulário que envia mensagens e responde automaticamente para o usuário!
=)
Olhem como funciona e aproveitem deixando uma opinião. Tão logo estiver pronto, o iMasters estará sorteando algumas cópias do livro!
Espero ter ajudado a muitos que procuram este resultado!
Até a próxima coluna!
Etam nenê!

ola... fiz o formulario passo a passo... mas naum funfou.. dae eu substitui as variaveis dos campos de texto (inves de inputNome coloquei soh Nome0 no script mude de $inputNome para $nome... dae funcionou (quase) o email foi enviado mas naum trouxe conssigo as variaveis ... ou seja o email veio todo certinho mas o q o usuario escreve naum aparece no email..... muito obrigado0.... e mermaum... manda informacoes sobre seu livro cara ... tou interessado!
Responder comentário
segui a risca fiz de tudo quase fiz macumba e essa coisa não funciona
perdi 2 horas tentando e nada nem na demostração ai da pag aparece movie not loaded

A explicalção até a parte dos botões está bem clara depois é que fica umpouco confuso. Ex se o botão do estado vazio (imagem sem preenchimento) este fica aonde? ele ficou invisível ou seja sem preenchimento, como será clicado?
O resultado é que o botão limpar não funciona.
Quem puder explicar melhor esta parte eu agradeço. Obrigado!

O Script Php esquece ... tive que fazer varias auterações para que o e-mail fosse enviado coretamente.
<?php
// Informações Empresa
$cabecalho = "From: TEXTO CAMPO DE \n";
$para = "seu_email@mail.com";
$siteadmin = "seu_site";
$nomesite = "Nome do Site";
$assunto = 'Contato Site';
//Processa informações usuario - Flash
$msg = array($inputNome, $inputEmail, $inputTel, $inputMensagem);
mail($para, $assunto, join("\n", $msg), $cabecalho);
// Envia Confirmação de envio.
$assunto_ret = "Obrigado por visitar nosso site.";
$msg_ret = "Obrigado por visitar o $siteadmin, estaremos dando um retorno em breve.";
mail ($inputEmail, $assunto_ret, $msg_ret, $cabecalho);
//Confirmaçao para o Flash
$sendresult = "Done!";
$send_answer = "answer=";
$send_answer .= rawurlencode($sendresult);
echo "$send_answer";
?>
e a função da tecla TAB nada nesse mundo consegui resolver, se alguem conseguir a soluçao Por Favor.
Muito Bom o Conteudo e a Didadica do Livro por sinal ... so algumas correçoeszinhas necesarias.
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Dauton Janota é desenvolvedor de projetos avançados em Flash MX e autor dos livros "Flash Action Script MX - Documentado e Não-documentado" e "Flash animado - Técnicas avançadas de design e animações".
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.