Comunidad de diseño web y desarrollo en internet online

Carga imágenes desde XML con callbacks as3

Citar            
MensajeEscrito el 11 Sep 2010 09:23 am
Hola, tengo un problema con dos funciones callbacks, una carga los thumbs y la otra las imágenes grandes. Ambas son pasadas como parámetro a una función que carga dichas imágenes. Si cargo solo los thumbs no tengo problema, pero si intento cargar también las imagenes grandes, al pintar la galería las imagenes se mezclan!

Alguien puede ayudarme? :oops:

Código ActionScript :

var xml_eventos:XML = new XML () 
 
var imagenes_pastillas_arr:Array = []; 
var nombres_imagenes_pastillas_arr:Array = []; 
 
var imagenes_grandes_arr:Array = []; 
var nombres_imagenes_grandes_arr:Array = []; 
 
// Funcion carga_xml en archivo as externo 
carga_xml ( "eventos.xml", "", callback_xml ) 
 
var url_imagenes_pastillas:String = "pastillas_proyectos" 
var url_imagenes_grandes:String = "pastillas_proyectos_grandes"    
 
function callback_xml ( xml:XML ) { 
   xml_eventos = xml; 
    
   //Funcion conversora de XMLLIST a ARRAY 
   nombres_imagenes_pastillas_arr = xml_list_to_array(xml_eventos.proyecto.thu_archivo) 
   nombres_imagenes_grandes_arr = xml_list_to_array(xml_eventos.proyecto.archivo) 
    
   //    
   carga_contenidos ( nombres_imagenes_pastillas_arr, url_imagenes_pastillas, callBack ) 
   carga_contenidos ( nombres_imagenes_grandes_arr, url_imagenes_grandes, callBack2 ) 
} 
 
//Carga thumbs 
var callBack:Function = function ( contenido:Bitmap ) {  
   imagenes_pastillas_arr.push ( contenido ) 
    
   if (imagenes_pastillas_arr.length == numero_proyectos ) { 
      contruye_menu () 
   } 
}  
//Carga imgs grandes 
var callBack2:Function = function ( contenido:Bitmap ) {  
   imagenes_grandes_arr.push ( contenido ) 
}

Por cecilia_

11 de clabLevel



 

msie8
Citar            
MensajeEscrito el 11 Sep 2010 11:42 am
Tu segundo callback (callBack2) solo mete un Bitmap en un array, no veo donde ni como las muestras

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Sep 2010 12:06 pm

Código ActionScript :

//pastillas_arr [ i ] es un array a partir del cual construyo el menu de thumbs
//
pastillas_arr [ i ].addEventListener ( MouseEvent.CLICK, pastilla_click ) 
//
function pastilla_click ( e:MouseEvent ) {
      animacion_salida ()
      pintar_img_grandes ()
      
      //AQUI PINTO LAS IMAGENES QUE SE CARGAN CON EL CALLBACK2
      function pintar_img_grandes() {
      fondo_negro.addChild (imagenes_grandes_arr [e.target.name])
      }
   }

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//Pongo el código completo:
//
function contruye_menu () {
   //Añadir menu thumbs al Display List
   contenido_2.ventana_fotos.addChild ( menu )

   //Bucle de pastillas añadidas a un array y luego al menu thumbs
   for ( var i:uint = 0; i<numero_proyectos; i++) {
      pastillas_arr.push ( new Pastilla_generica () )
      pastillas_arr [ i ].contenedor_imagen.addChild ( imagenes_pastillas_arr [ i ] )
      //Props pastillas
      pastillas_arr [ i ].mouseChildren = false
      pastillas_arr [ i ].buttonMode = true
      pastillas_arr [ i ].name = [ i ]

      pastillas_arr [ i ].pastilla_cruz.visible = false
      pastillas_arr [ i ].pastilla_cruz.alpha = 0
      pastillas_arr [ i ].numero.text = String ( i )
      pastillas_arr [ i ].nombre.text = xml_eventos.proyecto.nombre [ i ]
      pastillas_arr [ i ].nombre.alpha = 0
      
      //Eventos pastillas
      pastillas_arr [ i ].addEventListener ( MouseEvent.MOUSE_OVER, pastilla_over ) 
      pastillas_arr [ i ].addEventListener ( MouseEvent.MOUSE_OUT, pastilla_out ) 
      pastillas_arr [ i ].addEventListener ( MouseEvent.CLICK, pastilla_click ) 
   
   }
   //Funciones pastillas
   function pastilla_over ( e:MouseEvent ) {
      TweenMax.to ( e.target.pastilla_cruz, 0.2, {alpha:1, visible:true, easing:Cubic.easeOut } )
      TweenMax.to ( e.target.nombre, 0.2, { alpha:1 })
   }
   function pastilla_out ( e:MouseEvent ) {
      TweenMax.to ( e.target.pastilla_cruz, 0.2, {alpha:0, visible:false, easing:Cubic.easeOut } )
      TweenMax.to ( e.target.nombre, 0.2, { alpha:0 })
   }
   function pastilla_click ( e:MouseEvent ) {
      animacion_salida ()
      pintar_img_grandes ()
      //AQUI CARGO LAS IMAGENES GRANDES DEL CALLBACK2
      function pintar_img_grandes() {
      fondo_negro.addChild (imagenes_grandes_arr [e.target.name])
      }
   }
}

Por cecilia_

11 de clabLevel



 

msie8
Citar            
MensajeEscrito el 11 Sep 2010 12:11 pm
Mira esta función

Código ActionScript :

//AQUI PINTO LAS IMAGENES QUE SE CARGAN CON EL CALLBACK2
function pintar_img_grandes() {
   fondo_negro.addChild (imagenes_grandes_arr [e.target.name])
}


¿De donde sale e.target.name?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Sep 2010 01:04 pm
de aquí...?
pastillas_arr [ i ].addEventListener ( MouseEvent.CLICK, pastilla_click )
pastillas_arr [ i ].name = [ i ]

Por cecilia_

11 de clabLevel



 

msie8
Citar            
MensajeEscrito el 11 Sep 2010 01:23 pm
Ok, declaras una función dentro de otra y eso no tiene sentido, lo que tiene sentido sería algo así:

Código ActionScript :

 function pastilla_click ( e:MouseEvent ) { 
      animacion_salida () 
      fondo_negro.addChild (imagenes_grandes_arr [e.target.name])  
   } 


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Sep 2010 02:48 pm
Si tienes toda la razón, pero de todos modos mi problema continúa. Si cargo sólo los thumbs no tengo problema, el menú de miniaturas se muestra perfectamente y sus imágenes en orden, pero si intento cargar también las imagenes grandes, al pintar la galería las imagenes se desordenan entre sí, tanto las grandes como las pequeñas (las grandes con las grandes y las pequeñas con las pequeñas).
Puedes mirar este link? http://www.a7872138.0fees.net/
Mi galería está en: menú > eventos > galería fotos (botón negro de abajo)

Gracias!

Por cecilia_

11 de clabLevel



 

msie8

 

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