Comunidad de diseño web y desarrollo en internet online

cargar texto en galería de imágenes

Citar            
MensajeEscrito el 05 Dic 2008 10:25 pm
Como no estoy muy versado en action script planteo este tema referente a la carga de texto dentro de una galería de imágenes. Esto es, al momento de visualizar la imagen que tengo en el thumb, ésta debería ser acompañada por un texto. LAs imágenes son cargadas via xml. Hasta aquí vamos bien y todo resuelto. Me resta incluir el texto que supongo debe estar inserto en dicho xml o no sé como.
Entiendo que tal vez dando a presentar el código resutle arduo, pero creo que para su mejor comprensión he de explayarlo por completo (al menos el respectivo al thumb).

A continuación una muestra de lo que contiene el Xml de las imágenes, por tanto me placería saber que es lo que debo agregarle al mismo y al código.

Código :

<?xml version="1.0" ?>
                       <portfolio>
                       <video   
         cartella="portfolio_images/"
         preview= "thumb_classica.jpg"
         big="big_classica.jpg"
         tipo= "Spot"
         cliente= "12 ballerini"
         per= "Sky" />
         
         <video   
         cartella="portfolio_images/"
         preview= "thumb_classica2.jpg"
         big="big_classica2.jpg"
         tipo= "Spot"
         cliente= "12 ballerini"
         per= "Sky" />





Éste es el código





Código :

_global.now=1;
_global.tot=0;
var thumb_spacing = 420;
mc_bg.visible=true;

function GeneratePortfolio(portfolio_xml) {
   var portfolioPictures = portfolio_xml.firstChild.childNodes;
   
   _global.tot=portfolioPictures.length;
   trace(_global.tot);
   for (var i = 0; i<portfolioPictures.length; i++) {
      var currentPicture = portfolioPictures[i];
      var prova = _root.menu_mc.attachMovie("box", "box"+i, (i));
      
      prova.thumb_container.loadMovie(currentPicture.attributes.cartella+currentPicture.attributes.preview);
      
      prova.onEnterFrame=function(){ 
          car=this.thumb_container.getBytesLoaded(); // byte caricati
          tot=this.thumb_container.getBytesTotal();  // byte totali
          //this.barra._xscale=Math.floor(car/tot*100); //rap. perc. caricamento
         this.barra._visible=true;
         if(car == tot && car > 1024){
            // foto caricata
            this.barra._visible=false; // solo per sicurezza
            this.thumb_container._alpha=100; // vedo la foto
            //delete this.onEnterFrame  // cancello liberando la CPU da inutili controlli e carichi di lavoro
         } // fine if
      }// fine enterFrame*/
      
      prova._y = i*thumb_spacing;
      
      
      prova.big = currentPicture.attributes.big;
      prova.cartella=currentPicture.attributes.cartella;
      
      prova.onRollOver = prova.onDragOver=function () {
         //prova.barra.info_txt.text=this.title;
      };
      prova.onRollOut = prova.onDragOut=function () {
         //prova.barra.info_txt.text="";
         //prova.barra._visible=false;
      };
      prova.onRelease = function() {
         
         
         if (this.big!=""){
         mc_bg.img.loadMovie(this.cartella+this.big);
         mc_bg.onEnterFrame=function(){ 
          car=this.img.getBytesLoaded(); // byte caricati
          tot=this.img.getBytesTotal();  // byte totali
          this.barra._visible=true;
         //this.barra._xscale=Math.floor(car/tot*100); //rap. perc. caricamento
         if(car == tot && car > 1024){
            // foto caricata
            this.barra._visible=false; // solo per sicurezza
            this.img._alpha=100; // vedo la foto
            delete this.onEnterFrame  // cancello liberando la CPU da inutili controlli e carichi di lavoro
         } // fine if
      }// fine enterFrame*/
         }
         else this.big._visible=false;

      
      };
      if (i == 0)
      {
      prova.onRelease();
      //_root.cropBG();
      //_root.bgPan();
      }
   }
}



De ante mano muchas gracias.

Por incubo

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Dic 2008 05:22 am
Bien, lo primero que tienes que hacer es agregar la descripción al xml. Como en este caso sólo estás usando atributos, agreguémosle otro (lo llamé "descrizione" viendo que lo tienes todo en italiano:

Código XML :

<?xml version="1.0" ?>
    <portfolio>
        <video   
         cartella="portfolio_images/"
         preview= "thumb_classica.jpg"
         big="big_classica.jpg"
         tipo= "Spot"
         cliente= "12 ballerini"
         per= "Sky"
         descrizione = "La descrizione" <!--El atributo que hemos agregado-->
   />
       
       ...
   </portfolio>


Luego, necesitas agregar pasar ese atributo a algún lugar, el sitio ideal sería el thumbnail; así cada thumbnail tendrá la descripción de su propio video. Puede ser algo como esto:

Código ActionScript :

...
for (var i = 0; i<portfolioPictures.length; i++) {
      var currentPicture = portfolioPictures[i];
      var prova = _root.menu_mc.attachMovie("box", "box"+i, (i));
      
      prova.thumb_container.loadMovie(currentPicture.attributes.cartella+currentPicture.attributes.preview);
      prova.thumb_container.description = currentPicture.attributes.descrizione;
     //Con la línea de arriba, creas en cada thumb_container una propiedad llamada "description" y le pasas el valor del atributo que creamos en el XML
...

Por último, debes decidir cuándo vas a pasarle la descripción al cuadro de texto, aunque la opción que me parece más lógica ahora mismo es que lo hagas al hacer click, entonces:

Código ActionScript :

prova.onRelease = function() {   
         if (this.big!=""){
         la-ruta-del-cuadro-de-texto.text = this.description;
         mc_bg.img.loadMovie(this.cartella+this.big);
         ... //El resto del código.
      };


En términos generales se trata de eso. El código es optimizable y no lo he probado, pero en teroría debería funcionar. Lo siento, no tengo tiempo para mucho más. Suerte con eso (y)

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 07 Dic 2008 07:06 am
parece que hay alguna falta en todo esto, porque en el cuadro de texto ahora no hay carga de nada sino que me aparece el texto "undefined".

Por incubo

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Dic 2008 04:10 am
Tienes razón, hay una falla de scope.
En el primer código AS que te muestro, debes cambiar de:

Código ActionScript :

 prova.thumb_container.description = currentPicture.attributes.descrizione; 

por

Código ActionScript :

 prova.description = currentPicture.attributes.descrizione; 

para que la propiedad "description" pertenezca al objeto al que apunta "prova" y no a "thumb_container".

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox

 

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