ActionScript 3 viene con nuevos métodos para el envío y recepción de datos, en esta ocasión les presentamos un ejemplo de como enviar email con AS3 y PHP a semejanza de Enviar email con Flash y PHP pero esta vez actualizando con los nuevos métodos disponibles en AS3.
Implementando el Formulario en Flash
Sea que vamos a implementar un formulario de contácto, creamos cuatro campos de texto: txtnombre, txtempresa, txtemail y txtmensaje en los cuales el usuario ingresará sus datos. Además de ello creamos dos MovieClips btenviar y btborrar que servirán para enviar o limpiar el formulario.
Agregando Eventos a los Botones
Lo primero es agregar los eventos para el funcionamiento de los botones, para ello hacemos uso del método addEventListener de la siguiente forma:
[as]
btborrar.addEventListener(MouseEvent.MOUSE_DOWN, onBorrar);
btenviar.addEventListener(MouseEvent.MOUSE_DOWN, onEnviar);
function onBorrar(obj:Event) {
// acción para el botón btborrar
}
function onEnviar(obj:Event) {
// acción para el botón btenviar
}
[/as]
Implementando el botón Borrar
Para el botón borrar asignamos a todos los campos del formulario a un texto vacío para de esta forma tener todos los campos limpios.
[as]
function onBorrar(obj:Event) {
txtnombre.text = «»;
txtempresa.text = «»;
txtemail.text = «»;
txtmensaje.text = «»;
}
[/as]
Implementando el botón Enviar
El presionar el botón Envíar, se tienen que enviar los datos de los campos como variables a un script del servidor que encargue del envío del correo (En nuestro caso mail.php). Para ello hacemos uso de las clases URLVariables que permitirá definir las variables a enviar, URLRequest que permite definir a donde se enviaran los datos y bajo que método y URLLoader que permite hacer el envío de datos y la detección de este proceso.
[as]
function onEnviar(obj:Event) {
// variables a enviar
var urlVars:URLVariables = new URLVariables();
urlVars.nombre = txtnombre.text;
urlVars.empresa = txtempresa.text;
urlVars.email = txtemail.text;
urlVars.mensaje = txtmensaje.text;
// opciones para el envío
var urlRequ:URLRequest = new URLRequest(«mail.php»);
urlRequ.method = URLRequestMethod.POST;
urlRequ.data = urlVars;
// envío y detección de la respuesta
var urlLoad:URLLoader = new URLLoader();
urlLoad.load(urlRequ);
urlLoad.addEventListener(Event.COMPLETE, onSendComplete);
urlLoad.addEventListener(IOErrorEvent.IO_ERROR, onSendError);
}
[/as]
Como se observa hemos agregado dos detectores de eventos para mostrar un mensaje de texto de acuerdo a la respuesta del proceso. Para ello implementamos los dos detectores.
[as]
function onSendComplete(obj:Event) {
txtestado.text = «Mensaje Enviado»;
}
function onSendError(obj:Event) {
txtestado.text = «Mensaje Fallido»;
}
[/as]
Finalizando
Unimos todos los bloques de código que hemos desarrollado para obtener nuestro script en AS3 que permitirá el envío de los datos del formulario al script mail.php que se encargará del envío de correo.
[as]
btborrar.addEventListener(MouseEvent.MOUSE_DOWN, onBorrar);
btenviar.addEventListener(MouseEvent.MOUSE_DOWN, onEnviar);
function onBorrar(obj:Event) {
txtnombre.text = «»;
txtempresa.text = «»;
txtemail.text = «»;
txtmensaje.text = «»;
}
function onEnviar(obj:Event) {
var urlVars:URLVariables = new URLVariables();
urlVars.nombre = txtnombre.text;
urlVars.empresa = txtempresa.text;
urlVars.email = txtemail.text;
urlVars.mensaje = txtmensaje.text;
var urlRequ:URLRequest = new URLRequest(«mail.php»);
urlRequ.method = URLRequestMethod.POST;
urlRequ.data = urlVars;
var urlLoad:URLLoader = new URLLoader();
urlLoad.load(urlRequ);
urlLoad.addEventListener(Event.COMPLETE, onSendComplete);
urlLoad.addEventListener(IOErrorEvent.IO_ERROR, onSendError);
}
function onSendComplete(obj:Event) {
txtestado.text = «Mensaje Enviado»;
}
function onSendError(obj:Event) {
txtestado.text = «Mensaje Fallido»;
}
[/as]
Para ver en detalle como se envía correo con PHP, pueden leer Envíar E-mail con PHP. Pueden ver el ejemplo funcionando en mailas3 y finalmente pueden descargar los archivos fuente que incluye el script para el envío de correo en PHP.