Comunidad de diseño web y desarrollo en internet online

LoadVars en Flash

Citar            
MensajeEscrito el 17 Abr 2008 03:54 am
Hola a todos !

Antes que nada quiero comentarles que hace algunos años me gano la vida como diseñador gráfico y recién he comenzado a incursionar en el web y todo esto del Flash y los lenguajes de programación son un verdadero lío para mi.

Seguí el tutorial que hablá de LoadVars en flash http://www.cristalab.com/tutoriales/6/tutorial-de-loadvars-en-flash y basándome en el ejemplo creé un formulario de contacto para publicar en la web de la empresa en que trabajo. :cool:

Hasta ahí vamos bien.

El tema es que me gustaría mejorarlo por ej.: validando al menos el campo "e-mail" y de ser posible agregando un botón "borrar" o limpiar.

Aunque he buscado y buscado solo veo los otros tutoriales, pero por su cantidad de código y mi inexperiencia se me hace dificil darme cuenta si en alguno de ellos pueda haber algo que me pueda servir para esto.

Como ya dije no tengo elementos teóricos por donde empezar, por lo que agradecería muchísimo que alguien me pudiera guiar.

Gracias ! :)

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Abr 2008 09:28 am
Supongamos que la caja de texto se llame email_txt y queremos ver si tiene una arroba, puedes hacer:

var error:String
if(email_txt.text.indexOf("@")==-1) error = "Dirección de email incorrecta"

Y así con cada campo, esto lo pones en la rutina que procesa el form, justo antes de enviarlo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Abr 2008 11:26 am
Hola Jorge !

Antes que nada, GRACIAS por ocuparte y responder.

Según entendí el codigo que me diste debía ir en el lugar d elas variables, antes del codigo que se encarga de enviar el formulario...es así ?

Te transcribo el codigo como quedó, con lo que agregué en rojo.


//Declaro las variables para enviar y para recibir
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();

var error:String
if(email_txt.text.indexOf("@")==-1) error = "Dirección de email incorrecta"


//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";
}
};


Lo he subido y en realidad sigue enviando correos con direcciones no validas...
Alguna idea ?

Gracias de nuevo

:)

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Abr 2008 11:42 am
Falta:
- Meterlo dentro de la función que envía (está fuera)
- Mostrar la variable error en un campo de texto y evitar el envío (envio_lv.sendAndLoad)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Abr 2008 05:44 pm
Gracias, de nuevo.

Veré como hago lo que dices.
Lo de ponerlo dentro de la función de envío creo que lo puedo resolver facilmente, pero lo de mostrar el error en un campo de texto no tengo ni idea y lo de evitar el envío, pues, mucho menos.

Sabes donde puedo buscar info al respecto ?

Y una pregunta más...he visto algunas webs que tienen un formulario similar, pero dentro de la propia pelicula de flash y no en una aparte como este caso.
Sabes si se podrá insertar este formulario en una pelicula ya exitente ?

Gracias miles !

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Abr 2008 05:48 pm
¿Sabes como asignar texto a un campo de texto dinámico?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Abr 2008 06:28 pm
:( me temo que no...

Se que hay diferencias entre texto estático y dinamico...pero si te refieres a si se programar, la respuesta es no :o

No quiero molestarte, ni quitarte tiempo, ni desprestigiar a este foro, solo estoy buscando una solución al problema del bendito formulario.

A lo mejor les molesta que haga tantas preguntas, así que por las dudas, ruego las disculpas.
(me da la impresión de que en los foros de diseño gráfico las cosas son muy distintas y a lo mejor pretendo que aquí sea igual)

Gracias de todos modos.

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Abr 2008 06:44 pm
Nop, pero es necesario saber a cuanta distancia está la pregunta de la respuesta. Yo te explico como correr y me dices que no sabes caminar, entonces lógicamente la explicación no te sirve
En una peli nueva, dibuja un campo de texto, que sea dinámico, que tenga nombre de instancia estado_txt, luego en el mismo fotograma pones: estado_txt.text ="texto dinámico"
Una vez que haz logrado lo anterior, modificas el formulario y pones ese campo de texto dinámico, debajo del if que te puse pones

if(error!="") return

Ya muestras el mensaje y de paso no lo mandas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Abr 2008 12:32 pm
Hola Jorge !

Mira, francamente no pude hacerlo... :(

Intenté de varias maneras pero es que no se que parte del codigo esta mal...

Te lo transcribo para que me des tu opinion...Gracias una vez más :)

//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;

var error:String
if(email_txt.text.indexOf("@")==-1) error = "Dirección de email incorrecta"
if(error!="") return
estado_txt.text = "texto dinamico";

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";
}
};



y aquí esta el .php

<?php
$sendTo = "[email protected]";
$subject = $_POST["asunto"];
$headers = "From: " . $_POST["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";
?>

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Abr 2008 12:36 pm
Estas líneas deben ir así:

estado_txt.text = "texto dinamico";
if(error!="") return

Al reves de como las tienes (descarto que la prueba de texto dinámico que propuse previamente funcionó bien)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Abr 2008 12:49 pm
:crap:

las cambie y sigue igual...

Me muestra "texto dinamico" ya sea que no escriba nada, escriba una direccion valida o una invalida...

menudo rollo...

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Abr 2008 01:45 pm
Perdón, era así

estado_txt.text = error;
if(error!="") return

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Abr 2008 02:16 pm
Ahora Si ! :lol:

Muchas Gracias ...

Además, basándome en la linea que tu escribiste para el arroba agregué una para el punto:

var error:String
if(email_txt.text.indexOf("@")==-1) error = "Dirección de email incorrecta"
if(email_txt.text.indexOf(".")==-1) error = "Dirección de email incorrecta"
estado_txt.text = error;
if(error!="") return

Ahora la siguiente pregunta es ...puedo incluir este formulario en una película para que no se abra el forulario en otra ventana ?

El sitio que estoy armando es el de la imprenta en la que trabajo www.graficanatural.com.uy
Lo hice modificando una plantilla que encontré en un sitio de descargas.
En la seccion contactos había un form que nunca pude hacer andar y me gustaría incluir este en esa misma web.

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Abr 2008 05:52 pm
Ponlo en la película que quieras

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Abr 2008 06:48 pm
Jorge:

Un par de consultas más...

1 - Me aparece "undefined" en el cuadro de texto dinámico al probarlo en el servidor y obviamente el mensaje no llega.
(Esto aún con el form en un html aparte del resto de la pagina.)

2 - Cuando intento poner este form en la pelicula donde tengo el sitio no me acepta ninguna direccion de correo.

En el fotograma correspondiente a la pag. de contactos ya había codigo:

stop();
_root.f=6;

que tengo entendido que es necesario para que funcione la pag. tal cual estaba antes del incluir el formulario.

Me imagino que debe faltar algun codigo para que funcione bien.

ADEMAS: He notado que al presionar el boton de enviar aparece el mensaje en el texto dinamico pero no se borran los campos que completa el usuario. Se puede hacer ?

Gracias y perdón por la insistencia.

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Abr 2008 07:06 pm
Para que no aparezca undefined, ponemos las dos cosas en el mismo condicional:

if(error!="") {
estado_txt.text = error;
return
}

Si no acepta ninguna dirección de correo, es probable que te hayas olvidado el nombre de instancia del campo de texto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Abr 2008 07:44 pm
Lo puse como me dijiste y me sigue dando "undefined" ¡¡¡???


//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;

var error:String
if(email_txt.text.indexOf("@")==-1) error = "Dirección de email incorrecta"
if(email_txt.text.indexOf(".")==-1) error = "Dirección de email incorrecta"
if(error!="") {
estado_txt.text = error;
return
}

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";
}
};

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Abr 2008 07:53 pm
Inicializa error

var error:String = ""

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Abr 2008 08:07 pm
Gracias !

Ahora si funciona...

Voy a seguir intentando ponerlo en la peli principal y te aviso.

Gracias !!!!

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2008 11:48 am
Hola Jorge !

Sabes, no he podido hacer que funcione en el forograma donde debería ir el formulario.
Como te dije en un par de mensajes atrás, en ese fotograma hay un código:

stop();
_root.f=6;

luego puse el codigo del formulario tal cula había quedado y sucede que sigue sin aceptarme ninguna dirección de correo ni válida, ni inválida...sea lo que escriba me dice que la dirección es incorrecta y ya no responde el boton de enviar...

Intenté sin éxito, poner el código del formulario en otra capa. (sucede lo mismo)

Alguna idea ?

Gracias.

Por dariofal

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2008 02:06 pm
Traza el email a ver si lo está capturando antes del return

trace(email_txt.text)

Tienes que tener lo que escribiste en la ventana de salida. Sino chequea el nombre de instancia de la caja de texto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.