Comunidad de diseño web y desarrollo en internet online

Galería de imágenes xml

Citar            
MensajeEscrito el 13 Abr 2011 12:29 pm
Hola a todos.
A ver si alguien puede ayudarme.
He creado una galería de imágenes que importa los archivos desde un xml. Tengo una columna con miniaturas y al pulsar en cualquiera de ellas aparece en grande en un lado.
Mi pregunta es, quisiera crear un botón encima de la imagen grande para que, al pulsarlo, la imagen vaya cargando automaticamente la siguiente de la lista, sin tener que pulsar en las miniaturas.
La verdad es que no sé cómo hacerlo. ¿Cómo detecto qué imágen se está viendo en ese momento y cómo le digo que abra la siguiente?
Muchas gracias a todos.
Un salugo

Por ladyevil

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Abr 2011 02:15 pm
Eso depende que estructura de datos uses para tu galería, lo usual es tener un array de referencias y un contador que se incremente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Abr 2011 04:37 pm
puedes tener una funcion cargarImagen(num); que reciba como parametro un id de la foto actual. Cada ves q le das click a las miniaturas invocas a esa funcion pasandole el id del boton. Ahora dentro de la funccion debes actualizar una variable q almacene el id de la foto actual, cosa que cuando le des click al Boton q esta sobre la imagen grande, invoques a la funcion cargarImagen() con la variable... veamos el codigo:

Código ActionScript :

//datos de tu xml
var urls:array;  //aqui deben estar las url de tus fotos del xml
//-----------------------------------
var _id:Number=0; //variable q identifica la foto actual

//supongamos q tenemos 3 botones
boton1.onRelease=function(){
     cargarImagen(1);
}
boton2.onRelease=function(){
     cargarImagen(2);
}
boton3.onRelease=function(){
     cargarImagen(3);
}

function cargarImagen(num:Number){
     //Aqui el codigo q hace la carga de la imagen
     contenedor.loadMovie(urls[num]);
     //loadMovie para el ejemplo, lo ideal es usar movieClipLoader
     _id=num; //actualizas la foto actual
}
//lo siguiente es para el boton sobre la foto grande
botonGrande.onRelease=function(){
     cargarImagen(_id+1);
     _id += 1; //actualizas la foto actual
}

Bueno este codigo esta picadito, falta la carga del xml, optimizar la botonera y verificar q si llegas al final de tu array debes reiniciar tu variable _id.
Pero es tu punto de partida, para q tengas una idea... espero te sirva! :)

Por kikefcb

16 de clabLevel



 

Flash Developer & Animator

firefox
Citar            
MensajeEscrito el 13 Abr 2011 04:42 pm
Fe de erratas: en la ultima linea del codigo:

Código ActionScript :

 _id += 1; //actualizas la foto actual

Ya no debe estar ya q la actualizacion de la variable la hace la funcion ;)

Por kikefcb

16 de clabLevel



 

Flash Developer & Animator

firefox
Citar            
MensajeEscrito el 14 Abr 2011 08:35 am
Hola!
Muchas gracias por tu ayuda, he podido avanzar algo, pero como mi estructura es un poco distinta a la tuya me he vuelto a estancar un poquito :oops:
Verás, tengo un frame que llama al xml y carga el movieclip que contiene las miniaturas

Código :

function generar(){
   acomentarios=texto.firstChild.childNodes;
   totalc = acomentarios.length;
   trace(totalc);
   final = totalc_visible;
       attachMovie("mcPunto0","punto",this.getNextHighestDepth());
   this["punto"].imagen1 = texto.firstChild.childNodes[0].attributes.imgthumb;      
   this["punto"].imagen2 = texto.firstChild.childNodes[1].attributes.imgthumb;      
   this["punto"].imagen3 = texto.firstChild.childNodes[2].attributes.imgthumb;
        this["punto"].grande1 = texto.firstChild.childNodes[0].attributes.imagen;      
   this["punto"].grande2 = texto.firstChild.childNodes[1].attributes.imagen;      
   this["punto"].grande3 = texto.firstChild.childNodes[2].attributes.imagen;

Luego, en el mc, están los botones de las miniaturas con este código:

Código :

on(release){
   this.fotocontenedor.loadMovie(grande1);
   var _id:Number=1;
   trace(_id);
}

Y finalmente en el botón sobre la foto grande he puesto esto:

Código :

on(release){
   _id = _id+1;
   trace(_id);
   var fotogrande = "grande"+_id;
   trace (fotogrande);
   this.fotocontenedor.loadMovie(fotogrande);
}


Con el trace (fotogrande) me devuelve (por ejemplo): grande2, pero lo devuelve como una cadena, no lo reconoce como el valor de la variable declarada en el primer código.
¿Alguna sugerencia?
Muchísimas gracias por vuestra ayuda.

Por ladyevil

14 de clabLevel



 

firefox

 

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