Comunidad de diseño web y desarrollo en internet online

problema en galeria de imagenes con menu en .XML y .TXT

Citar            
MensajeEscrito el 19 May 2007 10:58 pm
1º saludos a todos y 2º la pregunta... hice esta pregunta en el foro de Flash y Datos, Remoting, WebORB y AMFPHP, pero nadie me respondio... supongo ke nadie supo como ayudarme, asi que lo posteo aca por si alguno de ustedes conoce la respuesta.
he leido algunos post referentes al tema, pero no me resulta...

bueno, aki va.....
resulta que he creado un "Frankenstein" y esta fuera de control..... Tomé 2 ejemplos: uno de un menu con .xml, y otro de una galeria de imágenes + .txt, en el que el .txt trae los datos de lo que se va a mostrar en pantalla con cada imagen y los meti en el mismo .FLA

asi va el menuderecha.XML
<menu>
<boton url="http://www.google.es">arboles</boton>
<boton url="http://www.elmundo.es">PECES</boton>
<boton url="http://www.nomaster.com">MUTANTES</boton>
<boton url="http://www.yahoo.es">123456789012</boton>
<boton url="http://www.elmundo.es">EL MUNDO</boton>
</menu>

y el código dentro del .fla:
//Creamos una nueva instancia XML
menuXml = new XML();
//Ignoramos los espacios en blanco
menuXml.ignoreWhite = true;
//Creamos una función asegurarnos de que se ha cargado
menuXml.onLoad = function(success) {
if (success) {
//Creamos una variable "menuItem" que nos devuelve
// una array con todos los items del menu
var menuItem = menuXml.firstChild.childNodes;
//Creamos un bucle desde 0 al total de items (menuItem.length)
for (var i = 0; i<menuItem.length; i++) {
//Accedemos al valor de cada uno de los items <boton>
Nombre = menuItem[i].firstChild.nodeValue;
//Accedemos al atributo url de cada uno de los items
Link = menuItem[i].attributes.url;
//Mediante attachMovie creamos instancias del clip de pelicula item_mc
attachMovie("item_mc", "item_mc"+i, i);
//A cada una de las instancias le asignamos...
//La posición en la coordenada x
_root["item_mc"+i]._x = 470;
//La posición en la coordenada y
_root["item_mc"+i]._y = 10+15*i;
//La etiqueta de texto
_root["item_mc"+i].etiqueta_txt.text = Nombre;
//El link al que irá
_root["item_mc"+i].Link = Link;
//Le asignamos la acción al boton
_root["item_mc"+i].Rectangulo_btn.onRelease=function(){
getURL(this._parent.Link); }
//Cerramos el bucle
}
//Cerrramos el if
}
//Cerramos la funcion
};
menuXml.load("menuderecha.xml");


y para la galería..... asi va el arboles.TXT
&titulo=<p align="center"><font size="20">Galeria con loadMovie() y <font size="15">html</font></font>
&texto1=Texto de la imagen 1
&texto2=Texto de la imagen 2
&texto3=Texto de la imagen 3
&texto4=Texto de la imagen 4
&texto5=Texto de la imagen 5
&texto6=Texto de la imagen 6


y el codigo (que va en un fotograma posterior al del codigo del menu:
archivo="arboles.txt"; //nombre del archivo
ruta="\\arboles\\imagen"; //ruta de las imagenes
ext=".jpg"; //extensión del archivo
total = "6"; //total de imagenes
i = 1; //contador
//carga del archivo .txt
carga = new LoadVars();
carga.html = true;
carga.onLoad = function(ok) {
if (ok) {
describe = eval("carga.texto"+i); //carga de la descripción
titulo = eval("carga.titulo"); //carga del título
};
};
loadMovie(ruta+"fondo"+ext, "fondo.contenedorfondo");

carga.load(archivo);

loadMovie(ruta+i+ext, "contenedor"); //carga de la imagen

//cuando se presiona el botón siguiente
sig_btn.onPress = function() {
if (i<total){
i++;
carga.load(archivo);
loadMovie(ruta+i+ext, "contenedor");
}
};

//cuando se presiona el botón anterior.
ant_btn.onPress = function() {
if (i>1) {
i--;
carga.load(archivo);
loadMovie(ruta+i+ext, "contenedor");
}
};


lo que he intentado hacer hasta el cansancio, sin lograrlo (por mis pocos conocimientos) es hacer que la variable ARCHIVO del codigo de la galeria la lea desde el .xml o desde la casilla de texto del boton creado por el codigo del menu.por ejemplo: para el primer boton generado por el codigo del menu, al presionarlo, la variable ARCHIVO del codigo de la galeria deberia ser = a "arboles". al presionar el 2º boton generado por el codigo del menu, ARCHIVO = PECES, etc.... para asi poder cargar las imagenes de la carpeta con ese mismo nombre. Y que la variable TOTAL la obtenga desde el .XML o del .TXT. teniendo en cuenta un .TXT para cada elemento del menu (o mas bien dicho, para cada carpeta con imagenes de la galeria)
la url que aparece en el .xml no me sirve, porque quiero que se carguen las fotos que dicta el codigo de la galeria, no que abra una pagina aparte. (pero eso es otro cuento)
se me ha ocurrido que a lo mejor poner un codigo en el script del menu que diga que cuando presione el boton, que recoja el valor de la casilla de texto de este boton y se la entregue a una variable, y cuando suelte el boton ésta variable la pueda leer el código de la galeria en -- archivo="arboles.txt"; //nombre del archivo --, cambiarlo por -- archivo=(textodelboton+".txt"); --, pero tampoco se como hacerlo
a lo mejor dejar todo en un solo script y decirle en el onRelease todo el script de la galeria. en realidad estoy bastante perdido, AYUDA POR FAVOOOOOORR!!!!

muchisimas gracias por haberse dado el tiempo de leer sobre mi problema (ya que es bastante largo el post) y espero que los que sepan como solucionarlo se puedan dar el tiempo de responder y disculpen si estoy siendo demasiado majadero preguntando tanta cosa junta, pero es que en realidad necesito ayuda con esto.
un abrazo, y muchas gracias.

PD.: uso FlashMX2004

Por nah-chong

7 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 May 2007 06:15 am

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 20 May 2007 09:12 pm
gracias inyaka por tu ayuda (y tu consejo :oops: ) (aunque ya habia usado buscar, pero me arrojo como 1400 resultados... y como soy nuevo en esto tampoco sabia muy bien que palabras clave poner, pero bueh,...)

le hice de todo al script y esto es lo mejor ke obtuve: un UNDEFINED cuando apretol algun boton del menu
y no me sale lo de tomar el valor del atributo "CANTIDAD" desde el .xml. sólo toma el valor del ultimo item del menu.....lo hago segun lo ke lei en ese post, pero no se que es lo que estoy haciendo mal....no aparecen los numeros que dicen en cual imagen voy ni el total de las imagenes (ej.: imagen 1 / 6 )
tambien tengo problemas al tomar el NOMBRE de cada boton, para entregarselo al ARCHIVO y RUTA del codigo que genera la galeria......pero por lo menos ahora aparecen todos los botones del menu...era cosa de mover el atributo CANTIDAD antes del NOMBRE, cuando lo ponia despues simplemente no aparecia el boton.
por favor si alguien sabe como corregir el codigo...INVOCO SU PRESENCIA.......

ahora deje el script asi:
menuXml = new XML(); //Creamos una nueva instancia XML
menuXml.ignoreWhite = true; //Ignoramos los espacios en blanco
menuXml.onLoad = function(success) { //Creamos una función asegurarnos de que se ha cargado
if (success) {
var menuItem = menuXml.firstChild.childNodes; //Creamos una variable "menuItem" que nos devuelve una array con todos los items del menu
for (var i = 0; i<menuItem.length; i++) { //Creamos un bucle desde 0 al total de items (menuItem.length)
Nombre = menuItem[i].firstChild.nodeValue; //Accedemos al valor de cada uno de los items <boton>
Link = menuItem[i].attributes.url; //Accedemos al atributo url de cada uno de los items
attachMovie("item_mc", "item_mc"+i, i); //Mediante attachMovie creamos instancias del clip de pelicula item_mc
_root["item_mc"+i]._x = 700; //A cada una de las instancias le asignamos la posición en la coordenada x
_root["item_mc"+i]._y = 480+15*i; //La posición en la coordenada y
_root["item_mc"+i].etiqueta_txt.text = Nombre; //La etiqueta de texto
_root["item_mc"+i].Link = Link; //El link al que irá
_root["item_mc"+i].Rectangulo_btn.onRelease=function(){ //Le asignamos la acción al boton
archivo=(Nombre+".txt"); //nombre del archivo
ruta=("\\"+Nombre+"\\imagen"); //ruta de las imagenes
ext=".jpg"; //extensión del archivo
total =trace(menuItem[i].attributes.cantidad); //(menuItem[i].attributes.cantidad); ---total de imagenes
k = 1; //contador
carga = new LoadVars(); //carga del archivo .txt
carga.html = true;
carga.onLoad = function(ok) {
if (ok) {
describe = eval("carga.texto"+k); //carga de la descripción
titulo = eval("carga.titulo"); //carga del título
};
};
loadMovie(ruta+"fondo"+ext, "fondo.contenedorfondo");
carga.load(archivo);
loadMovie(ruta+k+ext, "contenedor"); //carga de la imagen

sig_btn.onPress = function() { //cuando se presiona el botón siguiente
if (k<total){
k++;
carga.load(archivo);
loadMovie(ruta+k+ext, "contenedor");
}
};

ant_btn.onPress = function() { //cuando se presiona el botón anterior.
if (k>1) {
k--;
carga.load(archivo);
loadMovie(ruta+k+ext, "contenedor");
}
};
}

} //Cerramos el bucle
} //Cerrramos el if
}; //Cerramos la funcion
menuXml.load("menuderecha.xml");


y el XML (menuderecha.xml) asi:
<menu>
<boton url="http://www.google.es" cantidad="6">ARBOLES</boton>
<boton url="http://www.elmundo.es" cantidad="7">PECES</boton>
<boton url="http://www.nomaster.com" cantidad="6">MUTANTES</boton>
<boton url="http://www.yahoo.es" cantidad="8">OTRO</boton>
<boton url="http://www.elmundo.es" cantidad="10">123456</boton>
</menu>

Por nah-chong

7 de clabLevel



Genero:Masculino  

firefox

 

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