Olá pessoal. Depois de um bom tempo longe de publicar algo aqui no iMasters e muitas pessoas ainda pedindo auxílio, volto a publicar mais uma nova versão desse cadastro de e-mails em Flash com ASP, só que agora desenvolvido em Flash 8. Sua utilização também foi facilitada.
01. Estrutura do Banco de Dados em Access
CAMPOS NECESSÁRIOS:
- newsletter_id
- newsletter_nome
- newsletter_email
- newsletter_status
* Campo do tipo número, inteiro longo. Somente para gravar “0 para inativo e 1 para ativo.
Veja a tabela como ficará:

02. Construção do Formulário no Flash 8
Crie um arquivo do flash em branco. Crie uma camada nomeada como ACTIONS e no seu primeiro frame insira o código:
System.useCodepage = true;
stop();Para facilitar a manipulação dentro do flash e para facilitar a inserção deste no site que já estiver pronto, vamos criar um MC num palco vazio.
* Para quem não trabalha com Flash, é muito fácil criar um MC(Movie Clip) num palco sem ter nada definido ainda.
Faça um pequeno quadro no palco, selecione o quadro e aperte a tecla F8, digite um nome para seu MC, exemplo: “NL” e marque o tipo (Type) Movie Clip e clique em Ok. Pronto. Seu Movie Clip está criado apenas com o quadro que você desenhou no palco.
Veja como ficará o o filme já com seus campos criados e as camadas:

Agora vamos por as mãos na massa.
Dê dois cliques no MC que você criou para editá-lo.
- Crie uma camada nomeada ACTIONS que será usada para os scripts
- Crie outra camada para trabalhar com os campos, botões e animações que desejar depois.
Na camada ACTIONS crie uma frame em branco na coluna 10, uma na 22, uma na 23, uma na 24 e uma na 30.
Os frames tem que ficar como na figura abaixo:

» Agora vamos criar os campos e o botão para o envio.
Selecione a camada L1 que será usada para desenhar o formulário e o botão
Crie três campos “Imput Text” no palco como mostrado na figura acima. O primeiro campo que será usado para o nome instancie ele como “nome”, não como variável. O segundo campo instancie como “email” e o terceiro que será usado para receber as mensagens de alerta, instancie como “alerta”.
- Coloque um botão que será usado para enviar os dados. O botão pode ser personalizado a seu gosto.
» Após ter criado os campos, definidos suas instâncias e colocado o botão no lugar, vamos partir agora para os scripts que farão o trabalho de verificação e enviar os dados.
FRAME 1 – Na camada ACTIONS do MC que criou, no frame 1 insira o código a seguir:
stop();
// define a ordem em que o cursor pulará quando pressionar TAB
nome.tabIndex = 0;
email.tabIndex = 1;
// define a variável enviaDados
var enviaDados:LoadVars = new LoadVars();
// limpa o campo ao receber o foco
email.onSetFocus = function(oldFocus) {
email.text = "";
}
nome.onSetFocus = function(oldFocus) {
nome.text = "";
}
// função para o envio dos dados
function Enviar() {
// verifica se digitou o nome, senão mostra alerta
if (nome.text == "") {
alerta.text = "Por favor, informe um nome para o cadastro.";
// verifica email se é válido e mostra alerta
} else if (email.text == "" || email.text.indexOf("@", 0) == -1 || email.text.indexOf(".", 0) == -1) {
email.text = "Informe um email válido!";
} else {
// envia os dados do form
enviaDados.nome = nome.text;
enviaDados.email = email.text;
// envia os dados usando o arquivo ASP "add.asp" e espera um resultado do ASP
enviaDados.sendAndLoad("add.asp", enviaDados, "POST");
enviaDados.onLoad = function(ok) {
// se a mensagem foi enviada, mostra alerta com mensagem definida no ASP
if (ok) {
alerta.text = this.mensagem;
play();
} else {
// se houver algum erro, mostra alerta de erro
alerta.text = "Erro ao enviar dados";
play();
}
}
}
}Vou tentar dar uma explicada rápida no código acima para não escrever muito, já que o código está comentado. A função enviar verifica se o nome foi digitado ou está vazio. Se estiver vazio mostra alerta. Para o campo e-mail é verificado se a pessoa digitou um e-mail válido. Se houver algum erro no formulário será mostrado alerta de erro. Se não houver erros, os dados serão enviados para o ASP e o Flash fica esperando um resultado do arquivo ASP: se cadastrou com sucesso ou se já está cadastrado aquele e-mail.
» FRAME 10 – Na frame 10 do MC insira o código a seguir:
// limpa os campos nome e email
nome.text = "";
email.text = "";
FRAME 22 – Nessa frame 22, 23 e 24 criaremos um loop para criar uma pausa no filme:
FRAME 22 – Coloque esse código abaixo na frame 22:
// cria variável counter com valor zero
counter = 0;FRAME 23 – Coloque esse código abaixo na frame 23:
// soma +1 ao valor da variável counter
++counter;FRAME 24 – Na frame 24 insira o código abaixo:
// verifica se o valor de counter for maior ou igual a 40 e segue executando o filme
if (counter>=40) {
gotoAndPlay(_currentframe+1);
// senão retorna a frame anterior e conta + 1 para o valor da variável counter até chegar a 40
} else {
gotoAndPlay(_currentframe-1);
}FRAME 30 – Na frame 30 coloque o código a seguir:
// limpa o campo alerta e define um texto para nome e email
alerta.text = "";
email.text = "Digite seu e-mail aqui...";
nome.text = "Informe um nome.";
// vai para frame 1 e para
gotoAndStop(1);
BOTÃO – Para o botão de enviar coloque as ações abaixo:
// ao clicar executa a função enviar()
on (release){
Enviar();
}
PRONTO. O Filme do Flash já está pronto. Agora basta publicar o filme e partir para o ASP que vai adicionar os dados no Banco de Dados.
» ARQUIVO ASP ” add.asp “
- O Arquivo ASP está comentado e é simples o seu entendimento. Abre a conexão, carrega os dados do form e verifica se o email já existe no BD ou não, se existir mostra mensagem, se não existir insere e mostra mensagem.
- O código ASP pode ser personalizado para inserir os dados num Banco de Dados diferente ou enviar os dados para um e-mail personalizado.
<%
' Abre conexão com Banco de Dados
set cn = Server.CreateObject("ADODB.Connection")
pathdb = Server.MapPath("bd1.mdb")
cn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& pathdb
cn.CursorLocation = 3
Server.ScriptTimeout = 180
' carrega os dados vindos do form do flash
mensagem = ""
newsletter_nome = Request.Form("nome")
newsletter_email = lcase(Request.Form("email"))
newsletter_status = 1
' Verifica se o email já existe ou não no Banco de Dados
sqlSelect = "SELECT newsletter_email FROM newsletter WHERE newsletter_email = '" & newsletter_email & "'"
set rsSelect = cn.execute(sqlSelect)
' Se existir, define mensagem que já existe para o flash
if not rsSelect.EOF then
Response.write("&mensagem="+Server.URLEncode("Este email já se encontra em nosso Banco de Dados!"))
' se não existir insere no Banco de Dados
else
sqlInsert = ""
sqlInsert = sqlInsert & " insert into newsletter ( "
sqlInsert = sqlInsert & " newsletter_nome, "
sqlInsert = sqlInsert & " newsletter_email, "
sqlInsert = sqlInsert & " newsletter_status "
sqlInsert = sqlInsert & " ) "
sqlInsert = sqlInsert & " values ( "
sqlInsert = sqlInsert & " '" & newsletter_nome &"', "
sqlInsert = sqlInsert & " '" & newsletter_email &"', "
sqlInsert = sqlInsert & " " & newsletter_status
sqlInsert = sqlInsert & " ) "
cn.execute(sqlInsert)
' após inserir no BD define mensagem de sucesso para o flash
Response.write("&mensagem="+Server.URLEncode("Cadastrado com Sucesso!"))
end if
' fecha conexão do BD
cn.close()
set cn = nothing
%>Bom, essa matéria termina por aqui. Até a próxima!







