es muy sencillo.. la logica sera la siguiente... leelo todo, que te lo detallo bastante, y es largo, pero no tiene desperdicio.
Verificamos si los datos del XML coinciden con los de los campos de texto. Si coinciden, iran a un frame que queremos. si no coinciden, ira a un frame con un mensaje de error. OK.. bien
Te explico el codigo, tomado desde
cristalab, y por ultimo te dejo el link de los archivos. Uso FLASH CS3 en la version, asi que con versiones anteriores no podras abrirlo
Vamos a crear el archivo XML. Abres el BLOC DE NOTAS y escribes lo siguiente:
Código XML:
Ver original<?xml version="1.0" encoding="utf-8"?>
<confirmacion>
<usuario>lolo</usuario>
<password>12345</password>
</confirmacion>
Lo guardas como
pass.xml
Con eso ya tendras tu XML creado. Guardalo junto a la raiz del archivo mientras tanto
Creas 2 campos de introduccion de texto, y le pones como instancia
user_txt y al otro
password_txt
creas un tercer campo de texto, pero tipo texto dinamico, solo para recibir mensajes de error, si se produjeran al cargar el xml. Le pones como instancia:
cuerpo_txt
Creas un boton, o lo bajas desde los componentes de flash, y le pones como instancia:
submit_btn. LISTO, aqui va el codigo explicado
en el Primer fotograma o frame, ponemos lo siguiente
para detener ahi
luego creamos un objeto tipo XML con la siguiente funcion
esto permitira que con la variable
elXml podamos controlar las funciones que competen al trato de archivos XML externos.
Luego,
Con esto evitamos que se filtren espacios en blanco, por ejemplo, si nuestra contraseña es [12345], pero en el XML esta como
[12345 ], es decir, esto que esta en rojo, posee un espacio en blanco al final, que podria interpretar como un caracter especial y atrofiarnos el password.
ahora creamos una funcion normal de carga de los elemento XML con las siguientes lineas, solo debes copiarlas
Código actionscript:
Ver originalelXml.onLoad = function(exito) {
onLoad, indica, cuando se carga o mientras se carga el archivo XML, verifica si lo hizo corectamente o no
Código actionscript:
Ver originalif (exito) {
usuario= elXml.firstChild.childNodes[0].firstChild.nodeValue;
si no hubo problemas, asignamos una variable de nombre
usuario, cuyo valor es el objeto XML, que trae lo siguiente:
*elXml= el objeto XML que hemos declarado al principio
*firstChild= busca el primer tag o tag principal del XML, en este caso, segun el ejemplo equivaldria a buscar el
TAG <confirmacion> del archivo XML
*childNodes[0]= busca, dentro del
TAG <confirmacion>, el primer sub-tag, en este caso, representado por cero (0). Normalmente 1 es el primer elemento en orden, pero en arrays y programacion, el CERO es considerado como el primer elemento, por eso en el corchete aparece [0] indicando que buscaremos en el primer sub Tag del tag principal, en este caso
<usuario>
*
firstChild.nodeValue= ya ubicado el elemento, pues con nodeValue extraemos el valor del primer nodo o tag, en este caso, busca el valor que contiene
<usuario>, que es el usuario, o sea, el texto "lolo"
Lo mismo se aplica el password, solo que en ese caso, haremos 2 modificaciones:
1- asignarle otro nombre de variable
2- Especificar que busque en el 2º nodo o tag, poniendo [1]
Código actionscript:
Ver originalclave= elXml.firstChild.childNodes[1].firstChild.nodeValue;
si no tuvo exito la carga del XML, le diremos con un else que ha fallado, tirando un mensaje al cuadro de texto dinamico que hemos creado previamente.
Código actionscript:
Ver original} else {
//Muestra un mensaje de error en caso de que algo fallara
cuerpo_txt.text = "Error al verificar";
}
};// se cierra la funcion de carga de XML
ahora crearemos una funcion que haga la comparacion de los elementos que hay en el XML que trajimos con los que hemos escrito en los campos de introduccion de texto. Lamaremos a esa funcion "
verificar"
Código actionscript:
Ver originalfunction verificar()
{
elXml.load("pass.xml");
esto indica que la primera accion que hara la funcion sera buscar el archivo XML, o sea, cargar el archivo en la memoria, y las lineas que siguen comparan lo que escribimos, con lo que contiene el archivo XML
Código actionscript:
Ver originalif((user_txt.text == usuario) && ( password_txt.text == clave))
{
_root.gotoAndStop(3);
si lo que escribimos dentro del campo
user_txt, coincide con el primer nodo o tag de nuestro XML, y tambien, si lo que escribimos en el campo
password_txt.text coicide con el segundo nodo o tag de nuestro XML, haremos que vaya al FRAME 3, que es donde supuestamente comenzara nuestra pagina
Código actionscript:
Ver original}else{
_root.gotoAndStop(2);
}
}
caso contrario, de no coincidir, ira al FRAME 2, donde le espera un mensaje de error
Ok.. ahora haremos que funcione
Cuando presione el boton
submit_btn, llamara la funcion, y generara toda la accion
Código actionscript:
Ver originalsubmit_btn.onRelease = function (){
verificar();
}
es facil.. no? Si no lo comprendes bien, solo leelo de vuelta, y atentamente... si encuentras o encuentran horrores ortograficos, sepan disculpar
aqui va el codigo completo del del primer fotograma... o sea, todo lo anterior va en el primer fotograma
Código actionscript:
Ver originalstop();
/*#######################################*/
var elXml:XML = new XML();
elXml.ignoreWhite = true;
elXml.onLoad = function(exito) {
if (exito) {
usuario= elXml.firstChild.childNodes[0].firstChild.nodeValue;
clave= elXml.firstChild.childNodes[1].firstChild.nodeValue;
} else {
cuerpo_txt.text = "Error al verificar";
}
};
/*#######################################*/
function verificar()
{
elXml.load("pass.xml");
if((user_txt.text == usuario) && ( password_txt.text == clave))
{
_root.gotoAndStop(3);
}else{
_root.gotoAndStop(2);
}
}
/*#######################################*/
submit_btn.onRelease = function (){
verificar();
}
aqui tienes los archivos FUENTE para que los mires (o miren)
http://www.gigasize.com/get.php?d=kd51qrqm93b
ESPERO TE SIRVA y a otros tambien.. por suerte me agarrase en un momento de ocio total.
PD: NOTARAN QUE EN EL CAMPO DE INTRODUCCION DE TEXTO "USER_TXT" APARECEN LOS CARACTERES CON **** ASTERISCOS.. ES SOLO PORQUE UTILICE EL COMPONENTE INPUTTEXT DE FLASH... PARA MODIFICARLO, Y APAREZCAN CARACTERES NORMALES EN ESE CAMPO SOLO DEBEN UBICAR EL PANEL "PARAMETROS" O "PARAMETERS", Y EN LAS OPCION PASSWORD, PONERLO COMO "FALSE" Y LISTO