sexta-feira, julho 06, 2007

Enviando emails no flash

Para esse exemplo você vai precisar de quatro campos de texto do flash, sendo três de input e um dinâmico, e o componente "mcTween" instalado na sua máquina. Você pode criar via action ou inserindo diretamente no stage; para agilizar o processo, vou presumir que você criou eles via stage mesmo.

Primeira coisa a fazer: Jogar um campo de texto dinâmico e embedar fontes nele; Embede as fontes naquele botãozinho de "Embed..." ali no canto, no painel de propriedades.
Não vá me cometer o erro de clicar em "All (39477 glyphs)", primeiro porque você vai colocar fontes de um país que provavelmente nunca está no mapa; segundo, porque isso gera peso desnecessário no swf final [acredite, eu tive dores de cabeça enormes com isso]
Clique, com a tecla "Ctrl" pressionada, nos campos Uppercase, Lowercase, Numerals, Punctuation, Basic Latin e laaaá no meio Basic Latin I

Ainda temos apenas um campo de texto dinâmico. Copie ele outras três 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 dinâmico você nomeia ele como "msgError_txt"

Agora te prepara, lá vamos nos ao código gigante, em versão action script:


//funções para setar o focus dos campos de texto
function 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)
}

//função para o envio da mensagem do conteúdo dos campos de texto
msgErros_txt._alpha = 0
function 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 não pôde 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 aí faz o seguinte, em portugol:
Verifica se o campo de texto 'nome' está vazio; se sim, coloque o foco nele;
Verifica se o campo de texto 'email' está vazio; se sim, coloque o foco nele;
Verifica se o campo de texto 'msg' está vazio; se sim, coloque o foco nele;
Em todos os campos avise o usuário para preencher o campo que está vazio;
Depois disso, crie uma variável chamada "env" e armazene os valores desses campos de texto dentro dela
Mande a variável env para o arquivo "formulario.php" através do método "post"

Nesse caso eu usei php, porque é mais simples [para mim]


$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];


$msg = "Nome: \t$nome
";
$msg .= "E-mail: \t$email
";
$msg .= "Mensagem: \t$mensagem";

$mensagem = "$msg";
$remetente = "$email";
$destinatario = "batista.guilherme@gmail.com";
$assunto = "Dúvidas";
$headers = "From: ".$remetente."\nContent-type: text/html"; # o ‘text/html’ é o tipo mime da mensagem
if(!mail($destinatario,$assunto,$mensagem,$headers)){
print "falha no envio da mensagem";
} else {
echo "sua mensagem foi enviada com sucesso, obrigado. Clique aqui para voltar para nosso site";
}
?>

Nenhum comentário: