Introducción
Veremos como podemos desde enviar una pequeña petición a un servidor hasta el envio de correo electronico por medio de un formulario creado en Flash MX 2004.Requerimientos
Conocimientos previos de programaciónManejo basico de Flash MX o MX 2004
Tutorial hecho con "Macromedia Flash MX 2004 Professional", en ese formato se incluyen los ejemplos y demas archivos.
Seria bueno el conocimiento de algun lenguaje de Script del lado del servidor (ASP,. PHP, ColdFusion, JSP) para poder avanzar de mejor manera con los ejemplos del tutorial
Por ultimo, seria bueno que subieras a tu hosting en internet (Si no tienes, hay muchos lugares donde puedes abrirlo gratuitamente) el ejemplo para probarlo en linea
Enviando formularios y datos por GET y POST
Uno de los atractivos mas grandes de LoadVars es que nos permite enviar datos que nosotros pidamos al usuario desde Flash como un formulario HTML, que puede ser procesado por cualquier Script del lado del servidor (ASP, PHP, CFML, JSP, Perl, CGI, etc!), vamos a ver un pequeño ejemplo del envio de un formulario a un script; usare el ejemplo con PHP y con ASP, para que ustedes puedan escoger cual les conviene mas, ya que normalmente estos son los dos lenguajes que soportan la mayoria de servidores; de cualquier manera el codigo en Flash es el mismo.La idea es que cuando nosotros enviemos los datos del formulario, el script ASP o PHP nos devuelva un mensaje diciendonos que el registro se completo y que mientras el script nos da el aviso, aparezca un mensaje cargando.
Para esto, vamos a crear una pequeña interfaz de formulario, con un campo de texto de tipo "Dynamic Text para el mensaje que devuelve el script del servidor, tres campos de entrada para Nombre, Email y Contraseña; en este caso, como lo que vamos a hacer es un formulario, usaremos los componentes de Flash MX 2004, no importa si lo quieres hacer con los tradicionales "Input Text", funcionara de la misma manera, usaremos para los campos de entrada este componente : Asi que la interfaz de usuario nos quedaria con:
- Campo de texto "TextInput" para el nombre llamado "nombre_txt"
- Campo de texto "TextInput" para el email llamado "email_txt"
- Campo de texto "TextInput" para la clave llamado "clave_txt"
- Boton de envio del formulario
- Campo de texto "Dynamic Text" multilinea para el mensaje del servidor
- Logo de Cristalab en la esquina :D
on (release) { //Coloca el mensaje de carga en el campo de texto "mensaje_txt" mensaje_txt.text = "Cargando..."; //Llama a la función que envia el formulario enviarForm(); }
Nota: Como es la primera vez que vamos a enviar y recibir datos al tiempo, debo aclarar que Flash solicita dos objetos de la clase LoadVars para esta acción, y en este ejemplo asi lo vamos a hacer, pero tambien se puede hacer con uno solo, complicando mas el codigo pero haciendolo un poco mas optimo (La diferencia no es mucha).
//Declaro las variables para enviar y para recibir var envio_lv:LoadVars = new LoadVars(); var recibir_lv:LoadVars = new LoadVars(); //Función que envia el forumlario function enviarForm() { //El nombre de la variable que enviara los datos del formulario //es "envio_lv", a esa variable le voy asignando uno por uno los //valores que le llegaran al formulario, y con el mismo nombre que //asigno aqui sera con el que los Scripts trataran los datos del //formulario envio_lv.nombre = nombre_txt.text; envio_lv.email = email_txt.text; envio_lv.clave = clave_txt.text; //Uso el metodo "sendAndLoad" para enviar el formulario y recibir //la respuesta del servidor, el metodo tiene tres parametros //el primero es la URL del script que tratara el formulario, en este //caso lo llame "form.php", el segundo es el objeto que cargara la //respuesta del servidor y el tercero el metodo de envio del formulario //que puede ser, como en HTML, GET o POST envio_lv.sendAndLoad("form.php", recibir_lv, "POST"); //Aqui ustedes pueden cambiar de form.php a form.asp dependiendo del servidor //que usen } //Función que procesa los datos recibidos del servidor recibir_lv.onLoad = function(exito) { if (exito) { //Hace que el campo de texto "mensaje_txt" reciba codigo HTML mensaje_txt.html = true; //Le asigna el mensaje recibido del servidor, con formato HTML mensaje_txt.htmlText = this.mensaje; } else { //Muestra un mensaje de error en negrita mensaje_txt.htmlText = "<b>Error en el Script</b>"; } };
form.asp <% Dim nombre=Request.Form("nombre") Dim email=Request.Form("email") Dim clave=Request.Form("clave") Response.Write("mensaje=Bienvenido " & nombre & "<br />Entra con tu clave '" & clave & "' :D") Response.Write("<br />Att: The Cristalab Team") %>
form.php <? $nombre=$_POST["nombre"]; $email=$_POST["email"]; $password=$_POST["password"]; echo "mensaje=Bienvenido " . nombre . "<br />Entra con tu clave '" . password . " :D"; echo "<br />Att: The Cristalab Team"); ?>
mensaje=Bienvenido Freddie<br />Entra con tu clave 'cr1stalab' :D<br />Att: The Cristalab Team
Envio de correo electronico desde un formulario de Flash usando PHP o ASP
No hay nada mas atractivo (Para el desarrollador, pero no precisamente para el usuario) que poder hacer una miniaplicación capaz de enviar correo electronico a una dirección cualquiera (Digamos, la nuestra xD), asi como Flash puede enviar formularios, de la misma manera es capaz de enviar correo electronico, realmente el truco es el mismo que en el ejemplo anterior, la diferencia radica en el script que procesa el formulario,Vamos a crear una interfaz en Flash para envio de correo y mostrare los dos pequeños scripts tanto en ASP como en PHP que a partir de los datos del formulario de Flash, componen y envian el correo electronico.
Usaremos un nuevo componente, ya que un email normalmente puede incluir varias lineas de texto, el componente "TextInput" no nos sirve porque no es multilinea, asi que para esta labor se hizo "TextArea". Nuestra interfaz para el envio de correo estara compuesta por:
- Componente "TextInput" para el correo del remitente llamado "remitente_txt"
- Componente "TextInput" para el asunto llamado "asunto_txt"
- Componente "TextArea" para el cuerpo del correo llamado "cuerpo_txt"
- Boton bonito del ejemplo anterior ^_^
- Campo de texto "Dynamic Text" para informar al usuario del estado del envio llamado "estado_txt"
- Y el infaltable logo de Cristalab en la esquina :-)
on (release) { mensaje_txt.text = "Enviando su correo ..."; enviarMail(); }
//Declaro las variables para enviar y para recibir var envio_lv:LoadVars = new LoadVars(); var recibir_lv:LoadVars = new LoadVars(); //Función que envia el forumlario function enviarMail() { envio_lv.asunto = asunto_txt.text; envio_lv.email = email_txt.text; envio_lv.cuerpo = cuerpo_txt.text; envio_lv.sendAndLoad("email.php", recibir_lv, "POST"); //Aqui ustedes pueden cambiar de form.php a form.asp dependiendo del servidor //que usen } //Función que procesa los datos recibidos del servidor recibir_lv.onLoad = function(exito) { if (exito) { estado_txt.text = this.estado; } else { //Muestra un mensaje de error en negrita estado_txt.text = "Error en la aplicación de correo"; } };
<?php $sendTo = "[email protected]"; $subject = $_POST["asunto"]; $headers = "From: " . "Cristalab_Flashform"; $headers .= "<" . $_POST["email"] . ">\r\n"; $headers .= "Reply-To: " . $_POST["email"]; $message = $_POST["cuerpo"]; mail($sendTo, $subject, $message, $headers); echo "estado=Mensaje enviado :D"; ?>
<% Set oMail = Server.CreateObject ("CDONTS.NewMail") oMail.BodyFormat = 0 oMail.MailFormat = 0 Remitente = Request.Form("email") Destino = "[email protected]" 'Email de destino Asunto = Request.Form("asunto") Cuerpo = Request.Form("cuerpo") oMail.Send Remitente, Destino, Asunto, Cuerpo Set oMail = Nothing %> estado=Mensaje enviado :D
Conclusión
Desde Flash MX 2004 las posibilidaes en cuanto a conexiones son casi ilimitadas, te invitamos a continuar experimentando con el objeto LoadVars, del cual hay un tutorial completo aquiNo olvides que las preguntas referentes al tutorial debes colocarlas en el foro
Freddie® Cristalab
[email protected]
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Publica tu comentario
El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro
Entra al foro y participa en la discusión
o puedes...
¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?
Inicia sesión
¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?
Registrate