Comunidad de diseño web y desarrollo en internet online

problema para cargar texto xml en galeria de imagenes

Citar            
MensajeEscrito el 22 May 2011 01:26 am
Buenas!
Muchas Gracias desde ya a quienes pasen por aquí...

mi problema es el siguiente:
no encuentro la forma de mostrar un texto al hacer click en las miniaturas de mi galería.
ya hace tres dias que estoy probando de TODO y no puedo dar con la solución
lo que intento es que al hacer clik en una miniatura muestre el texto correspondiente a un video que tengo y lo mismo para el resto de las miniaturas. lo que sucede es que siempre me muestra el titulo 15. siendo este el ultimo de mi xml.

codigo en XML: (aqui solo muestro una parte ya que es muy largo. sigue igual hasta 15)

Código XML :

<?xml version="1.0" encoding="UTF-8"?>
<galeria>
   <item>
      <title>title 1</title>
      <thumb>imagen movimiento/mov01.jpg</thumb>
      <titulo>titulo 1</titulo>
      <copete>copete 1</copete>
      <info>descripcion 1</info>   
   </item>
<item>
      <title>title 2</title>
      <thumb>imagen movimiento/mov02.jpg</thumb>
      <titulo>titulo 2</titulo>
      <copete>copete 2</copete>
      <info>descripcion 2</info>   
   </item>
</galeria>




Codigo ActionScript 2.0:

Código ActionScript :

stop()
//
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
/////////////////////////////////////////////////
// Variables //
/////////////////////////////////////////////////
var Galeria:Array = new Array()
//
var thumb:MovieClip
//
var xmlTotal:Number
var total:Number
var colunas:Number
var padding:Number
var itensPagina:Number
var i:Number
var id:Number
var count:Number
var paginaAtual:Number
var numPaginas:Number

//
var xmlNode:XML
var xmlTotal:XML
/////////////////////////////////////////////////
/////////////////////////////////////////////////
function carregaXML():Void {
   ffXML = new XML();
   ffXML.ignoreWhite = true;
   ffXML.onLoad = function(success:Boolean):Void  {
      if (success) {
         montaXML()
      } else {
         trace("error");
      }
   };
   ffXML.load("galeria_mov.xml");
}
function montaXML() {
   xmlNode = ffXML.firstChild;
   xmlTotal = xmlNode.childNodes.length;
   for (var i = 0; i<xmlTotal; ++i) {
      var xmlNodeGeral:XMLNode = xmlNode.childNodes[i];
      //
      Galeria.push({
         titulo_th:xmlNodeGeral.childNodes[0].firstChild.nodeValue,          
         thumb:xmlNodeGeral.childNodes[1].firstChild.nodeValue, 
         titulo_video:xmlNodeGeral.childNodes[2].firstChild.nodeValue,
          copete_video:xmlNodeGeral.childNodes[3].firstChild.nodeValue,
         info_video:xmlNodeGeral.childNodes[4].firstChild.nodeValue});
   }
   //
   ini()
}
function ini(){
   total = xmlTotal
   colunas = 3;
   padding = 2;
   itensPagina = 15;
   count = 0;
   paginaAtual = 0;
   numPaginas = Math.ceil(total/itensPagina);
   //
   build(paginaAtual)
   verificaPagina()
}
/////////////////////////////////////////////////
// Build the Gallery //
/////////////////////////////////////////////////
function build(pagina) {
   var inicio = pagina*itensPagina
   /////////////////////////////////////////////////
   for (i = 0; i<total; i++) {
      thumb = thumbs_mov["item2"+i];
      thumb.removeMovieClip()
   }
   /////////////////////////////////////////////////
   for (i = inicio; i<inicio+itensPagina; i++) {
      id = i-inicio;
      if(i<total){
         thumb = thumbs_mov.attachMovie("item2", "item2"+i, i);   
         //
         thumb.titulo_th = Galeria[i].titulo_th
         thumb.thumb = Galeria[i].thumb
         thumb.titulo_video = Galeria[i].titulo_video
         thumb.copete_video = Galeria[i].copete_video
         thumb.info_video = Galeria[i].info_video
      
         thumb.posX = Math.round((151+padding)*(id%colunas));
         thumb.posY = Math.round((85+padding)*Math.floor(id/colunas));
         thumb._x = thumb.posX;
         thumb._y = thumb.posY;
         //
         thumb.i = i;
         thumb.small_mc.desc_mc.tit_txt.autoSize = "right"
         thumb.small_mc.desc_mc.tit_txt.text = (thumb.titulo_th).toLowerCase ()
   
         thumb.small_mc.alvo_mc._y = 80;
         thumb.loader_mc._alpha = 0;
         enable(thumb,false);
         //
         loadManager.queue({file:thumb.thumb, target:thumb.small_mc.alvo_mc, 
            onStart:function () {
               addTween(this._parent._parent.loader_mc,{_alpha:100, time:0.5, transition:"easeOutExpo"});
               addTween(this,{_saturation:0, time:0, transition:"easeOutExpo"});
            }, 
            onComplete:function () {
               addTween(this._parent._parent.small_mc.alvo_mc,{_y:0, time:0.5, transition:"easeOutExpo", rounded:true});
               addTween(this._parent._parent.loader_mc,{_alpha:0, time:0.5, transition:"easeOutExpo"});
               enable(this._parent._parent,true);
               
            }   
         });
      
         thumb.onRollOver = function() {
            if(_root.jaan != this.i){
            addTween(this.small_mc.slide_mc,{_x:-155,  time:0.5, transition:"easeOutExpo"});
            addTween(this.small_mc.alvo_mc,{_x:0, _saturation:100, time:0.5, transition:"easeOutExpo"});
            addTween(this.small_mc.desc_mc,{_x:35, time:0.5, transition:"easeOutExpo", rounded:true});
         };
         };
         thumb.onRollOut =  function () {
            if(_root.jaan != this.i){
            addTween(this.small_mc.slide_mc,{_x:155, time:0.2, transition:"easeOutExpo"});
            addTween(this.small_mc.alvo_mc,{ _x:0, _saturation:0, time:0.5, transition:"easeOutExpo"});
            addTween(this.small_mc.desc_mc,{_x:160, time:0.5, transition:"easeOutExpo", rounded:true});
         };};
         
         
         thumb.onRelease = function() {
            if(_root.jaan != this.i){
            addTween(thumbs_mov["item2"+_root.jaan].small_mc.alvo_mc,{ _x:0, _saturation:0, time:0.5, transition:"easeOutExpo"});
            addTween(thumbs_mov["item2"+_root.jaan].small_mc.desc_mc,{_x:160, time:0.5, transition:"easeOutExpo", rounded:true});
            _root.jaan = this.i;
            addTween(small_mc.alvo_mc,{_x:0, _saturation:0, time:0.1, transition:"easeOutExpo"});
            addTween(small_mc.desc_mc,{_x:160, time:0.5, transition:"easeOutExpo", rounded:true});
            
            addTween(fondo_titulos.bg_copete,{_x:220, time:0.2, transition:"easeOutSine"});
            addTween(fondo_titulos.bg_titulo1,{_x:220, time:0.2, transition:"easeOutSine"});
            
             displayTxt();
            
   };   
                  
         };
      }
   }
}
/////////////////////////////////////////////////

function displayTxt(){

titulo_txt.autoSize = "left";
titulo_txt.text = thumb.titulo_video;

copete_txt.autoSize = "left";
copete_txt.text = (thumb.copete_video);

info_txt.autoSize = "left";
info_txt.text = (thumb.info_video);

}

carregaXML()

stop();

Por valentinaction

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2011 12:48 pm
En la función displayTxt incurres en un error que no has hecho cuando creabas los thumbs, que es ignorar que todas las propiedades incluyendo la variable thumb se sobreescriben en el loop, de hecho haces muy bien copiando el índice i y usándolo como this.i dentro de los callbacks. Pásale directamente los tres datos como argumento de la llamada de la función, ya que thumb los conoce al momendo de declarar la llamada:

Código ActionScript :

displayTxt(this.titulo_video, this.copete_video, this.info_video); 


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 May 2011 08:11 pm
Hola Jorge!
Muchas gracias por tu pronta respuesta...
estuve probando lo que me dijiste y sigue sin funcionar.
puse displayTxt(this.titulo_video, this.copete_video, this.info_video);
dentro del thumb.onRelease
pero sigue saliendo siempre el titulo 15, copete 15 e info 15
la verdad es que estoy iniciándome en actionscript y todo esto fue a tropezones que lo pude hacer, siempre a prueba de error.. pero este caso en particular no lo puedo comprender..

titulo_txt, copete_txt e info_txt son capos de textos dinámicos que estan sueltos en el escenario. no se si es necesaria la aclaración pero por las dudas....

bueno espero poder solucionar esto pronto. y gracias nuevamente

Valentina.

Por valentinaction

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 May 2011 12:25 am
En estas 3 líneas lo estás copiando a thumb:

thumb.titulo_video = Galeria[i].titulo_video
thumb.copete_video = Galeria[i].copete_video
thumb.info_video = Galeria[i].info_video

Luego lo pasas como argumento en la llamada. Dado que se han copiado a la línea de tiempo no se sobreescriben. Pero déjame adivinar ... el código anterior no es tuyo, lo modificaste un poco y no te anda ... por eso a lo mejor se te ha escapado que los argumentos que pasas hay que utilizarlos en la función:

Código ActionScript :

function displayTxt(titulo:String, copete:String, video:String){ 
 
    titulo_txt.autoSize = "left"; 
    titulo_txt.text = titulo;

(... lo mismo para copete e info)


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 May 2011 01:51 am
MIl Gracias Jorge!!!!!
AHORA SI FUNCIONA
.. y si, tenes razón, es un codigo de uso libre que modifique para mi web
cosa que no fue facil =)

es muy lindo saber que hay persona dispuestas a ayudar sin pedir nada a cambio
espero yo poder en algún momento tambien poder ayudar...

saludos
Valentina.

Por valentinaction

5 de clabLevel



 

firefox

 

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