&mensagemTutorial – AS3.0 – Formulário de Email
O objetivo deste tutorial é demonstrar como enviar dados para um arquivo php, também serve para asp!
Este exemplo será sobre o envio de email.
Vamos começar com o php!
crie um arquivo no seu editor e nomeie o de email.php
Código em php para envio de email – este é um código padrão que uso quando quero enviar um email. Para configurar qual email enviar, e configurar o assunto da mensagem, basta modificar parte do php referente.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $ip = $_SERVER['REMOTE_ADDR']; $navegador = $_SERVER['HTTP_USER_AGENT']; $recipient = "seuemail@dominio.com"; $nome = $_POST["nome"]; $telefone = $_POST["cidade"]; $mensagem = $_POST["mensagem"]; $subject = "Assunto do email"; $msg = "Nome:$nome\nCidade:$telefone\nMensagem:$mensagem\nIP:$ip\nNavegador:$navegador"; $mailheaders = $email; mail("$recipient", "$subject", "$msg", "$mailheaders"); echo "=Mensagem enviada com sucesso!"; ?> |
!!! Uma dica para qualquer desenvolvedor web é ter sempre aquele códigos básicos que acabam adiantando muito o tempo na programação !!!
Ok, após concluir esta etapa vamos para o Flash
Inicialmente vamos precisar de 3 campos de texto, como input_txt, ele irá ser onde colocaremos os dados para serem enviados.
Instancie estes três campos com os seguintes nomes, a ordem dos campos é conforme você quiser.
nome_txt
cidade_txt
mensagem_txt
Depois desta etapa vamos criar um botão para o envio do email.
Então, crie um botão a seu gosto, do tamanho que desejar, e instancie o nome dele como:
envia_btn
Após ter terminado o botão, vamos para a programação
então para organização, crie uma nova layer e a nomeie com algum nome referente a programação, neste caso vou nomea-lo de acoes
então selecione a keyframe em branco e abre o painel Action (F9)
Agora vamos a programação, é muito importante que evite de copiar e colar, pois assim além de você não aprender, não saberá adicionar novos campos, enfim vá criando acompanhando e entendendo o que está sendo feito…
Vamos começar o Código, vou comentar as linhas para entenderem o que está acontecendo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | //Código para corrigir os acentos, em uft-8 System.useCodePage = true; //Esta linha, é responsavel pelo CLICK no botao Enviar, antigo onRelease envia_btn.addEventListener(MouseEvent.CLICK, sendData); //Esta função é o inicio do envio, tem uma verificação caso algum campo esteja vazio, no caso voce define quais campos verificar function sendData(m:MouseEvent) { if (nome_txt.text == "" || cidade_txt.text == "" || mensagem_txt.text == "") { aviso_txt.text = "Existem Dados Incompletos"; } else { sendForPhp(); } } //Esta função é para o envio do email, no caso das variaveis para o php. function sendForPhp() { //Avisando que está enviando aviso_txt.text = "Encaminhando Mensagem"; //essa variável é responsável para pegar todas as informações dos inputs, quase igual a antigamente LoadVars (Se não me engano) var varForPhp:URLVariables = new URLVariables(); // definindo os nomes das variaveis e suas informações varForPhp.nome = nome_txt.text; varForPhp.cidade = cidade_txt.text; varForPhp.mensagem = mensagem_txt.text; // esta função serve para definir o endereço do php, a forma de envio e as variáveis que serão enviadas // esta linha mostra o lugar onde se encontra o seu php, como dito, esta na msm pasta que o seu .swf, se estivesse numa pasta diferente, seria então "pasta/email.php" var phpUrl:URLRequest = new URLRequest("email.php"); //método de envio, como no formulário em html phpUrl.method = URLRequestMethod.POST; //as variáveis que serão enviadas para o php phpUrl.data = varForPhp; //Esta parte será responsável pelo envio, e verificação se foi ou não enviada var sendEmail:URLLoader = new URLLoader(); //Esta linha inicia o envio do phpUrl, que foi criado nas linhas anteriores sendEmail.load(phpUrl); //Esta linha é se o email for enviado, ele inicia a função sendOk sendEmail.addEventListener(Event.COMPLETE, sendOk); //Esta linha é se o email não for enviado, ele inicia a função sendError sendEmail.addEventListener(IOErrorEvent.IO_ERROR, sendError); } function sendOk( e:Event ):void { trace(" mensagem enviada") trace(e) } function sendError( e:IOErrorEvent ):void { trace("Erro no Envio do Email") trace(e) } |
Agora vou adicionar um código para fazer o antigo onSetFocus, muito usado para quando não se tem mt espaço na área de contato.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | // este emaranhado de código inicial é o que define o foco ou a saída do foco no texto. nome_txt.addEventListener(FocusEvent.FOCUS_IN, inFoco); cidade_txt.addEventListener(FocusEvent.FOCUS_IN, inFoco); mensagem_txt.addEventListener(FocusEvent.FOCUS_IN, inFoco); nome_txt.addEventListener(FocusEvent.FOCUS_OUT, outFoco); cidade_txt.addEventListener(FocusEvent.FOCUS_OUT, outFoco); mensagem_txt.addEventListener(FocusEvent.FOCUS_OUT, outFoco); //funcao que modificará o texto qnd for focado var texto:String = new String; function inFoco(m:FocusEvent) { // ele pega o campo que foi focado, e armazena o nome, para uso posterior se caso precisar quando for desfocado texto = m.target.text; //verificação caso o campo já esteja preenchido pelo usuário, para não apagar o que o usuário já digitou if (m.target.text == "Nome") { m.target.text = ""; trace(texto); } else { if (m.target.text == "Cidade - UF") { m.target.text = ""; trace(texto); } else { if (m.target.text == "Mensagem") { m.target.text = ""; trace(texto); } } } } // função quando o usuário tirar o foco do campo, caso ele esteja vazio, recoloca o nome original do campo, se não ele mantém o que já esta digitado. function outFoco(m:FocusEvent) { if (m.target.text == "") { m.target.text = texto; }else{ trace("Este campo foi alterado /"+m.target.text) } } |
Bom, este tutorial eu postei na comunidade no orkut, FlashPédia, click aqui para ver o link da comunidade
e na comunidade o André Luiz, adicionou uma dica, e vou reproduzi-la aqui…
“Só uma dica…
Não use System.useCodePage = true;
Só fazer o cabeçalho no PHP em UTF-8…
System.useCodePage = true faz com que o flash leia a codificação do sistema e não da página, se o usuário por acaso mudar a codificação do browser vai dar pau na acentuação…
Para outras correções no PHP procure saber sobre a função utf8_encode() do php…”
este foi dizer do André Luiz
Para fazer download do material utilizado no tutorial click aqui
Category:
Tags: 

