Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, estou com um pequeno problema e espero que alguem me ajude.
Fiz um tutorial do imasters para envio de formulario de e-mail com componentes no flash, porém, toda vez que tento enviar a mensagem da erro. Não estou conseguindo passar os parâmetros para a página de envio de email (enviar.php). Segue abaixo o código da página em flash.
CODE
import mx.controls.*;
import mx.transitions.Tween;
import mx.transitions.easing.*;
with (_global.style) {
setStyle("fontFamily", "calibri");
setStyle("fontSize", 11);
setStyle("fontColor", 0x000000);
setStyle("themeColor", "0xa9c780");
setStyle("openDuration", 1000);
setStyle("openEasing", Elastic.easeOut);
}
focusManager.enabledDefaultPushButton = true;
focusManager.defaultPushButton = btnEnviar;
focusManager.setFocus(textNome);
textNome.setStyle("backgroundColor", 0xb1d87d);
labelNome.text = "Nome:";
labelEmail.text = "Email:";
labelTel.text = "Telefone:";
labelServico.text = "Servico:";
labelMsg.text = "Observações:";
btnApagar.label = "Apagar";
btnEnviar.label = "Enviar";
//Índice de tabulação dos componentes(tecla TAB)
textNome.tabIndex = 1;
textEmail.tabIndex = 2;
textTel.tabIndex = 3;
comboServico.tabIndex = 4;
textMsg.tabIndex = 5;
//Contagem máxima de itens do combo, antes que seja gerada a barra de rolagem
comboServico.rowCount = 4;
//Restrição para o campo telefone, somente números
textTel.restrict = "0-9";
//Populando o combo de Servicos
var aServicos:Array = new Array();
aServicos[0] = {nome:"Selecione"};
aServicos[1] = {nome:"label01"};
aServicos[2] = {nome:"label02"};
aServicos[3] = {nome:"label03"};
aServicos[4] = {nome:"label04"};
aServicos[5] = {nome:"label05"};
aServicos[6] = {nome:"label06"};
aServicos[7] = {nome:"label07"};
aServicos[7] = {nome:"label08"};
//A propriedade dataProvider armazena todos os dados do componente ComboBox, essa propriedade armazena um array de objetos
comboServico.dataProvider = aServicos;
//Alterando a propriedade label do componente para nome, propriedade do objeto contido em cada índice do array
comboServico.labelField = "nome";
//Alterando as cores de background ao focar no campo e ao desfocar
var oListener:Object = new Object();
oListener.focusIn = function(obj:Object):Void {
obj.target.setStyle("backgroundColor", 0xb1d87d);
};
oListener.focusOut = function(obj:Object):Void {
obj.target.setStyle("backgroundColor", 0xFFFFFF);
};
//Cadastrando o listener somente aos objetos textuais
for (var i in this) {
var isText:Boolean = (this* instanceof mx.controls.TextInput || this** instanceof mx.controls.TextArea);*
if (isText) {
* this**.addEventListener("focusIn", oListener);*
* this**.addEventListener("focusOut", oListener);*
}
}
//Função para apagar os campos, apaga somente a propriedade text dos objetos textuas, não inclui o componente Label
function clearTextFields():Void {
for (var i in this) {
var isText:Boolean = (this instanceof mx.controls.TextInput || this instanceof mx.controls.TextArea);
if (isText) {
* this**.text = "";*
}
}
}
//Função para validar os campos, todos devem conter ao menos um caractere, o campo email deve conter "@" e ".", para que seja caracterizado como válido.
//Caso os dados não sejam válidos conforme condição, chamamos a função mensagemErro(), que chama um componente Alert, que está na Libray, exibindo nesta janela uma string passada como argumento da função
//Caso os dados sejam todos válidos, chamamos a função sendMsg() e passamos a url do arquivo de servidor que tratará da resposta
function valida():Void {
if (!textNome.text.length) {
mensagemErro("Preencha o nome!");
} else if (!textEmail.text.length) {
mensagemErro("Preencha o email!");
} else if (textEmail.text.indexOf("@") == -1 || textEmail.text.indexOf(".") == -1) {
mensagemErro("Preencha o email corretamente!");
} else if (!textTel.text.length) {
mensagemErro("Preencha o telefone!");
} else if (comboServico.selectedIndex<1) {
mensagemErro("Selecione a Servico!");
} else if (!textMsg.text.length) {
mensagemErro("Preencha o comentário!");
} else {
sendMsg("enviar.php");
}
}
//Função para a mensagem, pede ao menos um parametro, ou argumento, e exibe a mensagem no componente Alert
function mensagemErro(msg:String):Void {
if (arguments.length === 0) {
return;
}
var alerta:Object = Alert.show(msg, "Aviso", Alert.OK, null);
}
//Função que envia os dados para o servidor, pede um argumento de url, local para onde enviará as variáveis do objeto LoadVars.
//Cada propriedade declarada no objeto enviaParaServidor, é uma variável que deve estar presente na linguagem de servidor, como, por exemplo, PHP, Asp.net, ColdFusion, Jsp, etc.
function sendMsg(url:String):Void {
if (arguments.length === 0) {
return;
}
var enviaParaServidor:LoadVars = new LoadVars();
enviaParaServidor.nome = textNome.text;
enviaParaServidor.email = textEmail.text;
enviaParaServidor.telefone = textTel.text;
enviaParaServidor.Servico = comboServico.selectedItem.label;
enviaParaServidor.mensagem = textMsg.text;
enviaParaServidor.sendAndLoad(url, enviaParaServidor, "POST");
//Ao receber um dado do arquivo de servidor, ele verificará se está recebendo uma string "ok", por exemplo, caso seja ok, limpamos os campos de texto e mandamos o ComboBox para o índice 0 (selecione)
//Caso a mensagem contenha a string "erro", chamamos pelo alert e avisamos o usuário sobre o erro, caso contenha um
//Se receber undefined é porque a mensagem não chegou ao arquivo de servidor, normalmente o nome do arquivo está errado
enviaParaServidor.onData = function(dado:String):Void {
switch (dado) {
case "ok" :
mensagemErro("Enviado com sucesso!");
clearTextFields();
comboServico.selectedIndex = 0;
break;
case "erro" :
mensagemErro("Algum erro qualquer(substitua por algo...)");
break;
case undefined :
mensagemErro("Erro ao tentar enviar!");
break;
}
};
}
//Cadastrando os listeners para os botões, caso o nome do botão seja btnApagar, apaga os campos e manda o comboBox para o índice 0, caso seja btnEnviar, chama a função valida()
oListener.click = function(obj:Object):Void {
if (obj.target == btnApagar) {
clearTextFields();
comboServico.selectedIndex = 0;
} else if (obj.target == btnEnviar) {
valida();
}
};
btnApagar.addEventListener("click", oListener);
btnEnviar.addEventListener("click", oListener);
Agradeço antecipadamente a quem puder me ajudar :blink:
Carregando comentários...