Comunidad de diseño web y desarrollo en internet online

Problema asignando eventos

Citar            
MensajeEscrito el 21 Abr 2009 09:32 pm
Buenas tardes, es mi primera vez preguntando en este foro, aunq siempre lo consulto para sacarme dudas.

Ahora queria pedirles ayuda para solucionar un problema con una galeria.

Resulta que cargo un XML, y en el tengo, como datos, destino y thumb, ambas direcciones a fotografias en el servidor. Realizo la carga de los thumb de imagenes, y todo bien hasta ahi, pero quiero q al hacer clic en cada una, se abra la foto respectiva, como lo indicaba en el XML.

XML (Bien sensillo):
<album>
<foto destino="fotos/events-b_13.jpg" thumb="fotos/thumb_events-b_13.jpg"/>
<foto destino="fotos/events-b_12.jpg" thumb="fotos/thumb_events-b_12.jpg"/>
</album>

El probelma es q todas las fotos abren el mismo archivo, es decir, una imagen deberia abrir events-b_13 y la otra events-b_12 respectivamente, pero al hacer clic en los thumnaild, ambos abren la ultima imagen q figura en el XML, en este caso: events-b_12.jpg.

Aqui les dejo el codigo que escribi:

Código ActionScript :

//Veo los nodos q voy a necesitar para cargar la info
var fotoNodo:XMLNode;
var nodosGaleria:XMLNode;

//Cargo una estructura XML
var galeriaXml:XML = new XML();
galeriaXml.ignoreWhite = true;
galeriaXml.load("pruebafotos.xml");
galeriaXml.onLoad = cargarfotos;

function cargarfotos():Void {
        //Ahora empiezo a cargar los eventos de un dia
   cantidad = galeriaXml.firstChild.childNodes.length;
   
   //Creo la pelicula que va a cargar las fotos
   _root.createEmptyMovieClip("mcfotos",_root.getNextHighestDepth());
   _root.mcfotos.createEmptyMovieClip("lasfotos",_root.getNextHighestDepth());
       eval("_root.mcfotos")._y = 242.7;
       eval("_root.mcfotos")._x = 469.1;

   if (cantidad != undefined) {
      i = 0;//Esta es la que me devuelve la cantidad de fotos q voy colocando
      c = 0;// Cantidad de columnas
      f = 0;//Cantidad de filas

      fotoNodo = galeriaXml.firstChild.firstChild;
       //Aqui recorro el dia buscando los eventos
      while (i<cantidad) {
         //Cargo las imagenes
                   _root.mcfotos.lasfotos.attachMovie("thumb_foto","thumb_foto"+i,_root.mcfotos.lasfotos.getNextHighestDepth());
         eval("_root.mcfotos.lasfotos.thumb_foto"+i).createEmptyMovieClip("foto",10);
         eval("_root.mcfotos.lasfotos.thumb_foto"+i+".foto").loadMovie(fotoNodo.attributes.thumb);
         dirdefoto = fotoNodo.attributes.destino; 
            //Ahora cargo el evento para el evento :P
               fotoev = new Object();
               fotoev.onRelease = function(evento){
            if (_root.lafoto) {_root.removeMovieClip(lafoto);}
            _root.createEmptyMovieClip("lafoto",_root.getNextHighestDepth());
                     _root.lafoto.loadMovie(dirdefoto);
            _root.lafoto._x = 100;
            _root.lafoto._y = 261;
            _root.lafoto._rotation = -10;
                };

            //Cargo el evento
            eval("_root.mcfotos.lasfotos.thumb_foto"+i).onRelease = fotoev.onRelease;

         if (c>=3) 
         {
            c = 0;
            f = f+1;
         }
         //Ahora debo moverlo, para posicionarlo donde corresponde
         eval("_root.mcfotos.lasfotos.thumb_foto"+i)._y = (f*77);
         eval("_root.mcfotos.lasfotos.thumb_foto"+i)._x = (c*83);
         c = c+1;   
         fotoNodo = fotoNodo.nextSibling;
         i = i+1;
      }//Fin del while
   }//Fin de si cantidad era distinto de undefined 
}


Desde ya muchas Gracias por su Atencion! y espero puedan ayudarme!

Saludos!

Por b3nshi

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Abr 2009 05:45 pm
Prueba algo así:

Código ActionScript :

target = _root.mcfotos.lasfotos["thumb_foto"+i]
target.dirdefoto = fotoNodo.attributes.destino
target.onRelease = function(){
   .....
  _root.lafoto.loadMovie(this.dirdefoto); 
}; 


Es decir, copias la variable que necesitas al MC, sino el loop la sobreescribe

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.