Foros del Web » Creando para Internet » Flash y Actionscript »

se pueden declarar varias variables para un formulario flash?

Estas en el tema de se pueden declarar varias variables para un formulario flash? en el foro de Flash y Actionscript en Foros del Web. que tal foristas. Hace días baje un ejercicio lo más de interesante el cual por medio de una variable me salia un letrero de correcto ...
  #1 (permalink)  
Antiguo 15/06/2005, 15:21
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
Pregunta se pueden declarar varias variables para un formulario flash?

que tal foristas.
Hace días baje un ejercicio lo más de interesante
el cual por medio de una variable me salia
un letrero de correcto e incorreto.
Lo que yo busco es poder aumentar a cierto
número de variables y que cuando ingrese
el valor correcto me diga bienvenido.
Como declaro más variables que me sean
aprobadas?

este es el ejercicio y su código:
El ejercicio consta de un campo de texto (introducción de texto)
con nombre de var "vpass" y nombre de instancia "pass"
y otro campo de texto (dinámico) con nombre de var "mensaje"
un botón con nombre de instancia "entrar".
Tambien será posible que apenas sea correcto la contraseña
me mande a un URL?

código:

stop();
contraseña="nombre_1";
pass.password = true;
pass.onSetFocus = function() {
mensaje = "";
};
entrar.onPress = function() {
if (Vpass.toLowerCase() eq contraseña) {
mensaje = "Bienvenido!";
} else {
mensaje = "Contraseña incorrecta, intentalo de nuevo";
}
};
__________________
Diseñador Gráfico publicitario
  #2 (permalink)  
Antiguo 15/06/2005, 17:54
Avatar de [ EDO ]  
Fecha de Ingreso: julio-2004
Ubicación: Quilpué, V Región, Chile
Mensajes: 98
Antigüedad: 20 años, 3 meses
Puntos: 0
Puedes declarar todas las variables que quieras en flash.
Ahora bien, ¿lo que quieres es validar más campos de texto o que la cantidad de contraseñas aceptadas sean más de una?

Si es lo primero, tendrías que hacer una condición if para cada campo de texto, Yo las coloco dentro de una funcíon que se llama al apretar el bón de envío obviamente.

Si es lo segundo, tienes que aumentar la cantidad de coincidencias en la condición if ocupando el operador || (or). Quedaría más o menos así:

if (
Vpass.toLowerCase() == "perro" ||
Vpass.toLowerCase() == "verde" ||
Vpass.toLowerCase() == "nada" ||
Vpass.toLowerCase() == "123"
) {
mensaje = "Bienvenido!";
} else {
mensaje = "Contraseña incorrecta, intentalo de nuevo";
}

Esto te dará el texto de bienvenida al ingresar cualquiera de los valores "perro", "verde", "nada" o "123" en el campo de texto con nombre de var "Vpass". Si necesitas más coincidencias, sólo aumenta la lista.
__________________
EDO
  #3 (permalink)  
Antiguo 16/06/2005, 06:00
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
hola quetal EDO, gracias por tu aporte voy a mirar y te cuento como me fue.
Mucha suerte
__________________
Diseñador Gráfico publicitario
  #4 (permalink)  
Antiguo 16/06/2005, 06:49
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
Hola edo, probe tu código y no me funciona lo hice de dos formas mira:
stop();
entrar.onPress = function() {
if (vpass.toLowerCase() == "contra1||or") {
(vpass.toLowerCase() == "contra2||or");
(vpass.toLowerCase() == "contra3||or");
mensaje = "Bienvenido!";
} else {
mensaje = "Contraseña incorrecta, intentalo de nuevo";
}
};



y sólo con el operador ll

stop();
entrar.onPress = function() {
if (vpass.toLowerCase() == "contra1||") {
(vpass.toLowerCase() == "contra2||");
(vpass.toLowerCase() == "contra3||");
mensaje = "Bienvenido!";
} else {
mensaje = "Contraseña incorrecta, intentalo de nuevo";
}
};

que puede estar pasando?
__________________
Diseñador Gráfico publicitario
  #5 (permalink)  
Antiguo 16/06/2005, 07:03
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
Hey que tal EDO ahora si, lo que pasaba era que esta copiando como no era el código.
me decis que si deseo aumentar un campo de texto lo hago con if?........
Ejemplo:

stop();
pass.onSetFocus = function() {
mensaje = "";
};
entrar.onPress = function() {
if (Vpass.toLowerCase() == "contra1" || Vpass.toLowerCase() == "contra2") {
mensaje = "Bienvenido!";
if (usu.toLowerCase() == "nombre1" || usu.toLowerCase() == "nombre2") {
} else {
mensaje = "Contraseña incorrecta, intentalo de nuevo";
}
}
};


asi seria la cosa?

gracias
__________________
Diseñador Gráfico publicitario
  #6 (permalink)  
Antiguo 16/06/2005, 11:47
Avatar de [ EDO ]  
Fecha de Ingreso: julio-2004
Ubicación: Quilpué, V Región, Chile
Mensajes: 98
Antigüedad: 20 años, 3 meses
Puntos: 0
Sonrisa

Si pues, estabas escribiendo los operadores dentro de las comillas, estas delimitan textos (string), cualquier cosa entre comillas se convierte en un simple texto. Los operadores jamás deben ir dentro de las comillas, además estabas colocando (en el primer caso) el operador doble, colocas || o bien or, pero no ambos (creo que or ya no se usa). Existen operadores que se utilizan doble y hasta triple (como el operador ===), pero este no (espero estar en lo cierto, je je).

Pasando a lo otro, supongamos que tienes un formulario con 4 campos con los siguientes nombres de var:

nombre
correo
pais
comentario

Y quieres comprobar que simplemente tengan algun contenido (valor), no importa qué, pero que tengan escrito algo. OK?
Tendrías que hacer una condición if para cada uno, pero veamos ahora sólo una:

if (nombre == "") {
mensaje = "No se ha escrito nada en el campo nombre";
}else{
mensaje = "Bienvenido";
}


Esta condición comprueba si el campo nombre esta vació.
Después del operedor doble == está un par de comillas, dos comillas sin nada entre ellas significa que es un texto vació (espero que entiendas el concepto).
La condición en definitiva estaría preguntando lo siguiente:

Si el campo de texto NOMBRE ES IGUAL a UN TEXTO VACIO...

Si has entendido hasta aquí, ya te imaginarás como que hay que hacerlo para cada campo, pero no es así de simple. Lo mejor es colocar estas condiciones dentro de una función que luego es llamada por algún botón. El código de más arriba cambirá un poco pero en escencia es lo mismo.
Te daré la estructura de la función y te dejo a tí la terea de estudiarla y adaptarla:

function comprobarCampos () {
if (nombre == "") {
mensaje = "No se ha escrito nada en el campo nombre";
return false;
}
if (correo == "") {
mensaje = "No se ha escrito un correo";
return false;
}
if (pais == "") {
mensaje = "No se ha definido un pais";
return false;
}
if (comentario == "") {
mensaje = "No se ha escrito ningún comentario";
return false;
}
mensaje = "Bienvenido";
return true;
}


El comando return hace que se detenga la función y envía un valor de vuelta si es que lo hay. Para este caso yo simplemente envío de vuelta valores booleanos (true o false) sólo por si hicieran falta.

Nota: Revisa tu actual codigo porque hay un if que no está haciendo nada y por lo tanto es código que sobra.
__________________
EDO
  #7 (permalink)  
Antiguo 16/06/2005, 16:05
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
Hola EDO, depues de intentarlo todo no he entendido algunas cosas:
if (nombre == "") {
mensaje = "No se ha escrito nada en el campo nombre";
}else{
mensaje = "Bienvenido";
}
Si el campo de texto NOMBRE ES IGUAL a UN TEXTO VACIO...
esto lo entiendo. Preguntas:
1-Me decis que Lo mejor es colocar estas condiciones dentro de una función que luego es llamada por algún botón.
La funcion que declaraste function comprobarCampos () { esta contiene los valores (es asi?)

nombre, correo, pais y comentario son los campos de texto (introducir texto)
"mensaje" es un campo de texto que da la respusta (campo de texto dinamico)
return false; (devuelve el valor de la funcion) me imagino que es la funcion "comprobarCampos"
Al boton hay que darle agun nombre de instancia? alguna programacion?
Mira yo hice esto y me funciona pero creo que no es correcto como estoy colocando la programacion.
stop();
// cada vez que el cursor está en el campo pass, borro el campo mensaje
usu.onSetFocus = function() {
mensaje = "";
};
pass.onSetFocus = function() {
mensaje = "";
};
// Nombre de variable del botón
entrar.onPress = function() {
//variables definidas para "Vusu" (campo de texto)
if (Vusu.toLowerCase() == "usu1" || Vusu.toLowerCase() == "usu2"Vusu.toLowerCase() == "usu3" ) {
//si lo anterior es correcto me dice esto
mensaje = "Bienvenido";
//de lo contrario me sale esto
} else {
mensaje = "usuario incorrecto";
//nombre de instancia del boton
entrar.onPress = function() {
//variables definidas para "Vpass" (campo de texto)
if (Vpass.toLowerCase() == "contra1" || Vpass.toLowerCase() == "contra2"|| Vpass.toLowerCase() == "contra3") {
mensaje = "ingreso exitoso";
} else {
mensaje = "contraseña incorrecta";
}
};
}
};


ahora tambien loque busco es que si todo lo demas seme cumple me envie a un URL y no se si esto va dentro de un
fotograma o en el boton

gracias por tu ayuda
__________________
Diseñador Gráfico publicitario
  #8 (permalink)  
Antiguo 17/06/2005, 12:30
Avatar de [ EDO ]  
Fecha de Ingreso: julio-2004
Ubicación: Quilpué, V Región, Chile
Mensajes: 98
Antigüedad: 20 años, 3 meses
Puntos: 0
Mmmmm...

Ya te dije que la funcíon sólo comprueba que se escriba algo en los campos de texto nombre, correo, pais y comentario, puede ser cualquier cosa. La función obliga a que los campos no estén vacios. Y claro que son compos de introducción!, si de eso estamos hablando, NO?

"mensaje" es una variable cualquiera, si quieres puede ser el nombre de var de un campo de texto dinámico. Tú sabrás como lo utilizas.
Yo ocupé "mensaje" por que todos los script que hemos usado como ejemplo tienen esa variable como respuesta y sólo seguí la misma línea. Esperaba que esto se entendiera.

El comando return sirve para detener una función y para enviar un valor de vuelta si hace falta. Al ejecutarse el comando return, todo lo que esté después se anula. En este caso no hace falta enviar un valor de vuelta pero yo siempre lo hago por buena costumbre nada más. Pero si hace falta detener la función si algun campo se encuantra vacío.

En la función hay 4 if, cada uno comprueba si está vacío dicho campo, y si está vacío asigna un texto de error a la variable "mensaje" y detiene la funcíon.
Si los 4 campos no se encuentran vacíos, entonces la funcíon llega hasta el final y asigna un texto de bienvenida a la variable "mensaje". Al final tambien hay un return, pero perfectamente se puede prescindir de él.

También quieres que al comprobar los campos, si están todos ok, te envíe a una url. Bastaría con colocar la acción de Action Script para URLs al final de la función tambien.
La función quedaría así:

Código PHP:
function comprobarCampos () {
if (
nombre == "") {
mensaje "No se ha escrito nada en el campo nombre";
return 
false;
}
if (
correo == "") {
mensaje "No se ha escrito un correo";
return 
false;
}
if (
pais == "") {
mensaje "No se ha definido un pais";
return 
false;
}
if (
comentario == "") {
mensaje "No se ha escrito ningún comentario";
return 
false;
}
mensaje "Bienvenido";
getURL("http://www.forosdelweb.com");
return 
true;

Tu codigo puede que te funcione, pero está poco optimizado (es mucho codigo sólo para dos campos) y además tiene un grave error: sólo la última condición if es la que decide si está todo correcto. Me explico, bastaría con que yo coloque la contraseña sólamente para que me de la bienvenida, por eso lo tienes que hacer con una fúnción. Dentro de una función es la única forma que puedes hacer que un script se detenga.
Aquí tienes la misma función, pero comprobando que el campo nombre contenga ciertos valores específicos:

Código PHP:
function comprobarCampos () {
 if (
nombre != "usu_1" && nombre != "usu_2" && nombre != "usu_3") {
  
mensaje "El nombre es incorrecto";
  return 
false;
 }
 if (
correo == "" || correo == undefined) {
  
mensaje "No se ha escrito un correo";
  return 
false;
 }
 if (
pais == "" || pais == undefined) {
  
mensaje "No se ha definido un pais";
  return 
false;
 }
 if (
comentario == "" || comentario == undefined) {
  
mensaje "No se ha escrito ningún comentario";
  return 
false;
 }
 
mensaje "Bienvenido";
 
getURL("http://www.forosdelweb.com");
 return 
true;

Fíjate en el operador de la primera condición. El signo ! significa negación, y combinado de esta forma != quiere decir "no es igual". Entonces el primer if pregunta de esta forma:

Si el campo de texto nombre NO ES IGUAL A "usu_1" Y NO ES IGUAL A "usu_2" Y NO ES IGUAL A "usu_3"... Se envía el mensaje error y se detiene la función.

La idea es que tú adaptes y modifiques el código a tu conveniencia dependiendo de tus requerimientos. Es difícil entender el tema de los operadores cuando se está empezando, espero que esté más claro ahora.
__________________
EDO
  #9 (permalink)  
Antiguo 24/06/2005, 15:20
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
Hola que tal edo. tuve por estos dias problemas con internet y apenas hasta ayer puede ver tu correo.
En los dias ensaye algunos codigos y me funciono correctamente en todo caso tu ayuda me fue de gran importancia.

mucha suerte y gracias
__________________
Diseñador Gráfico publicitario
  #10 (permalink)  
Antiguo 24/06/2005, 23:24
Avatar de [ EDO ]  
Fecha de Ingreso: julio-2004
Ubicación: Quilpué, V Región, Chile
Mensajes: 98
Antigüedad: 20 años, 3 meses
Puntos: 0
Je je, que bueno.

A seguir practicando entonces.
__________________
EDO
  #11 (permalink)  
Antiguo 04/08/2005, 13:31
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
hola Edo hace dias me explicaste este tema y me quedo muy claro.
Ahora tengo otro problema.
Como hago para que mi cliente cambie estas variables desde un archivo de texto?...osea que el agregue o quite usuarios y contraseñas desde porejemplo el block de notas.

saludos
__________________
Diseñador Gráfico publicitario
  #12 (permalink)  
Antiguo 04/08/2005, 16:23
Avatar de [ EDO ]  
Fecha de Ingreso: julio-2004
Ubicación: Quilpué, V Región, Chile
Mensajes: 98
Antigüedad: 20 años, 3 meses
Puntos: 0
La verdad es que has hecho cada ves más complejo el trabajo, está muy bien para aprender, pero lo malo es que ahora deseas hacer cosas que se deberían haber planificado desde un principio.

Si tu cliente desea tener control sobre los usuarios y sus contrasañeas, lo mejor sería haber trabajado desde un principio con base de datos MySql y PHP y dejar a estas tecnolgías el trabajo de validar las contraseñas y todo eso. Lo que planteas es posible hacerlo, pero es tan engorroso y tan inseguro que no tiene sentido ni vale la pena hacerlo así, bastaría con que el usuario abra el TXT donde se encuentran las contraseñas para saber toda la informacíon, tu cliente podría borrar algún caracter del TXT sin darse cuenta y eso de inmediato haría fallar el sistema.

De verdad creo que la peor manera de hacerlo es como dices tú, yo creo que lo mejor es conversar con tu cliente y explicarle que el proyecto tiene limitaciones de la manera en que se planificó y que si quiere tener control sobre todo eso, debrías empezar denuevo. Claro que necesitarías un programador para la base de datos y todo lo demás.

A mí siempre me pareció raro lo que pretendías hacer, porque querías "administrar" usuarios pero sólo con Flash y eso lo limita de inmediato al número de variables que coloques dentro del Flash. Y como ya verás, Flash no es para eso, sólo proporciona la interface.

Trata de ordenarte con el proyecto y a los clientes a veces hay que decirles NO. Porque tampoco puede pretender que tú hagas más trabajo del que te está pagando.
__________________
EDO
  #13 (permalink)  
Antiguo 05/08/2005, 07:41
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
que tal edo. Estoy deacuerdo contigo, pero como siempre en la vida hay piedritas en el zapato que se presentan y ante ellas no hay sino que darle soluciones asi sean un poco trabajosas.
Te cuento que el trabajo ya esta hecho y finalizado, en un comienzo sin yo saber nada de BD, me puse en la terea de estudiar un poco del tema y aprendi algo y le haice lo anterior con BD la hice con un programa facil de administrar que es el appserv, me imagino que lo conoces.
Despues de haberme quebrado el coco haciendo esto, le presente esta parte del proyecto y el ingeniro de sistemas de esa empresa me sale con la bobada de que por el momento no desean BD que porque no tenian un servidor disponible las 24 horas y que lo que ellos buscaban era darle algunos clientes (empresas amigas) nombre de usuario y contraseña con la finalidad de que dichos clieentes entraran a un ftp...................el me dijo que algo basico que solo lo deseaba con algunas variables (usuarios y contraseñas) y que lo enviara a un ftp sin nada de BD (despues de haber hecho todo ese trabajo).......listo hice la consulta y vos me colaboraste muy amablemente..........ahora al gran marica (perdon por la palabra) me dice que el lo quiere administrar y la verdad no se como.
Es cierto lo de la planificacion y la vardad yo lo hice, esto fue que al gran marica ingeniero de sistemas que se cree el putas apenas acabe el sitio le dio por decir que mi sitio era obsoleto, sin utilidad, que no le servia (despues de acabar el trabajo)
Entonces EDO ponte en mi lugar que es bastante complicado y la verdad esto lo quiero solucionar no por el dinero sino para darle a ese ingeniro eso y que el lo controle.

mucha suerte y gracias por tus sugerencias, eso me pasa por novato, pero de eso se trata de ir aprendiendo dia a dia.
__________________
Diseñador Gráfico publicitario
  #14 (permalink)  
Antiguo 05/08/2005, 11:51
Avatar de [ EDO ]  
Fecha de Ingreso: julio-2004
Ubicación: Quilpué, V Región, Chile
Mensajes: 98
Antigüedad: 20 años, 3 meses
Puntos: 0
JA JA JA... disculpa que me ria pero es que a todos nos toca de ves en cuando uno de esos clientes de mierda.

Ok, entiendo tu inquietud, pero igual tengo algunas dudas escenciales. Me dices que el ingeniero marica desea controlar el acceso FTP de algunos clientes. El FTP es un soporte propio del servidor web, y aunque supieras como hacerlo no te corresponde porque no tiene nada que ver con hacer un sitio web. Si él desea otorgarle claves y contraseñas a algunos clientes "amigos", pues él mismo debería crear las cuentas FTP que no creo que sea mas de un par de clicks. Tampoco puedes controlar/administrar los accesos FTP desde el sitio web porque simplemente no se puede, el FTP es un protocolo diferente al HTTP y difiere de este último porque justamente fue hecho así.

Ahora bien, si la cosa es simplemente controlar el acceso al sitio web Flash (y ojo que hablo del sitio no del FTP) sin usar BD, sé como hacerlo con un archivo TXT, pero de todas formas se tendría que modificar el FLA cuando se agregue o elimine un usuario del archivo TXT. De momento no se me ocurre una manera para que sólo se tenga que modificar el archivo de texto. Pensaré en ello si es lo que necesitas realmente.

Para terminar, por ahí vi que mencionaste el Appserv, esto es un paquete que instala un servidor web completo sin la necesidad de configurarlo manualmente, lo cual es muy cómodo porque yo lo tengo instalado acá en mi PC para hacer pruebas. Y si entiendo bien, tú te pusiste a instalarle un servidor web a tu cliente para colocar el sitio web y hacer andar la BD, yo te pregunto entonces ¿para qué mierda hiciste eso si no te corresponde? eso le corresponde justamente el puto ingeniero del que me hablas. Aprendiste a hacer cosas que no sabías y que no te corresponden, te hechaste mas trabajo encima, se alargaron los plazos y de seguro nadie te está pagando por todo eso. Además el ingeniero no te puede pedir algo al final del proyecto porque simplemente no lo pidió en un principio. Si tanto quiere lo que te pide, pues que pague un monto adicional por el trabajo extra.

Aclárame el tema del FTP/Flash. Yo te puedo ayudar sólo con lo del Flash porque tampoco sé como habilitar cuentas FTP. No es trabajo tuyo ni mío hacerlo.
__________________
EDO
  #15 (permalink)  
Antiguo 05/08/2005, 12:03
 
Fecha de Ingreso: agosto-2005
Mensajes: 1
Antigüedad: 19 años, 3 meses
Puntos: 0
Sonrisa hola tengo una duda...

hola podrias ayudarme ??? se puede optimizar un swf???

soy nueva en esto asi es que no se si es aqui donde debo preguntar.. :)

saludos.
MonYQ
  #16 (permalink)  
Antiguo 08/08/2005, 07:21
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
jajaja que tal edo, si estamos deacuerdo con todo tu comentario, ese ingeniero por ser tan pretencioso no sabe que hacer. Le hice una BD y el idita penso que me habia corchado y se la hice, como vio la cosa que no podia administrala o no se que le veria me dijo que algo mas sencillo y se lo hice, ahora a ese don nadie dice que el desea agregar o quitar usuarios y contraseñas..............jajajaja pendejo tan bobo no sabe que mas pedir............si eso es cierto eso es trabajo que no me tocaba hacer, loque paso es que el dueño de la empresa me cayo bien y le quice colaborar, eto que te cuento fue cuando entregue el sitio que al gran marica ingeniero dijo que el sitio era obsoleto.............jajajaja no pues que dijo el que se las sabe todas.............ahora esto que hago es solo por orgullo, le voy a demostrar a ese don nadie que a mi no me queda grande nada.
lo del ftp no te confundas lo unico que deseo es que el por medio de un TXT el agregue usuarios y contraseñas..............lo del ftp como el es tan bueno que el lo haga............alguien me explico que colocando esta accion en el fla:

loadVariablesNum("texto.txt", 0);

en el archivo "texto" van todos los usuarios y contraseñas............loque no se es que codigo agregale en el archivo de texto.........explicame como hago eso.......con el codigo que me explicaste la vez pasada que esta bien interesante
saludos edo y mucha suertre.

nota: no importa que el pueda dañar ese codigo, la cosa es entregarle eso pa demostrarle que yo si se.
__________________
Diseñador Gráfico publicitario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:01.