Comunidad de diseño web y desarrollo en internet online

No puedo hacer andar esto!!

Citar            
MensajeEscrito el 07 May 2009 11:26 pm
Hola necesito una ayuda, cargo unas fotos desde un xml dendro de mc, este mc hago que cuando haga clic me traiga la descripcion de esa foto en un campo de texto, ahora bien no puedo traer esa descripcion del xml, en en campo de texto me tira UNDEFINED.... donde estaria el problema les dejo el contenido:
el xml tengo esto:

Código :

<?xml version="1.0" encoding="utf-8"?>
<imagenes>
   <imagen id="mini/foto1.jpg" descri="tarrito" datos="se almacena 100 grs. de jamon cocido."/>
   <imagen id="mini/foto2.jpg" descri="jamon" datos="se almacena 500 grs. de jamon cocido."/>
   <imagen id="mini/foto3.jpg" descri="salchichon" datos="se almacena 1880 grs. de jamon cocido."/>
   <imagen id="mini/foto4.jpg" descri="bondiola" datos="se almacena 80 grs. de jamon cocido."/>
</imagenes>


En el AS tengo esto:

Código ActionScript :

x = -220; 
y = -20; 
ancho = 100; 
alto = 70; 
var mxml:XML = new XML(); 
mxml.ignoreWhite = true; 
mxml.onLoad = function(succes:Boolean) { 
    if (succes) { 
        for (var i = 0; i<this.firstChild.childNodes.length; i++) { 
            var item:MovieClip = fotos_mc.createEmptyMovieClip("diapo"+i, fotos_mc.getNextHighestDepth()); 
            item.loadMovie(this.firstChild.childNodes[i].attributes.id); 
          fotos_mc.onPress = function(){
           texto_txt.text = this.attributes.datos;
        }
        // for (var a = 0; a<this.firstChild.childNodes.length; a++) { 
            //texto_txt.text=item=this.firstChild.childNodes[i].attributes.descri; 
         //fotos_mc.createEmptyMovieClip("diapo"+i,fotos_mc.getNextHighestDepth()); 
       //  } 
         item._x = x; 
            item._y = y; 
            x += ancho; 
            columna += 1; 
            if (columna == num_columnas) { 
                columna = 0; 
                x -= (ancho*num_columnas); 
                y += alto; 
            } 
 
var my_fmt:TextFormat = new TextFormat(); 
      my_fmt.bold = true; 
      my_fmt.font = "Arial"; 
      my_fmt.size = 10; 
      my_fmt.color = 0x000000; 
  
fotos_mc.createTextField("texto_txt"+i,fotos_mc.getNextHighestDepth(),item._x,item._y+alto,ancho,30); 
   itemtext = fotos_mc["texto_txt"+i]; 
   itemtext.multiline = true; 
   itemtext.wordWrap = true; 
   itemtext.text = this.firstChild.childNodes[i].attributes.descri; 
   itemtext.setTextFormat(my_fmt);  
        } 
    } 
}; 

mxml.load("datos.xml");  
stop();


El campo de texto que que hice para que aparezca la descipcion, esta en la misma escena, no dentro del mc.
Resumiendo: lo que quiero hacer es cuando me aparecen las fotos, hago clic en cada foto y me trae la descripcion de cada foto en el campo de texto (texto_txt)

Ojala me puedan ayudar!"!!! GRACIAS de antemano!!!! :lol:

Por arieljbon

56 de clabLevel



 

argentina

msie8
Citar            
MensajeEscrito el 08 May 2009 10:57 pm
En la siguiente función:

Código ActionScript :

fotos_mc.onPress = function(){ 
    texto_txt.text = this.attributes.datos; 
} 


Cuando te refieres a this te refieres al botón al que le estás creando la función de onPress y el mismo no tiene ninguna propiedad "attributes" por eso te devuelve undefined. Veo que hay varias incongruencias en tu código, intenta lo siguiente:

Código ActionScript :

mxml.onLoad = function(succes:Boolean):Void {
   
   if (succes) {
      
      var nodes:Array = this.firstChild.childNodes;
      var cont:MovieClip;
      var item:MovieClip;
      var i:Number;
      
      for (i = 0; i < nodes.length; i++) {
         
         cont = fotos_mc.createEmptyMovieClip("diapo" + i, fotos_mc.getNextHighestDepth());
         cont.numero = i;
         
         item = cont.createEmptyMovieClip("diapo", 1);         
         item.loadMovie(nodes[i].attributes.id);
         
         cont.onPress = function():Void{
            
            texto_txt.text = nodes[this.numero].attributes.datos;
            
         }
         
         .
         .
         . //--- El resto de tu código

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 08 May 2009 11:29 pm

elchininet escribió:

En la siguiente función:

Código ActionScript :

fotos_mc.onPress = function(){ 
    texto_txt.text = this.attributes.datos; 
} 


Cuando te refieres a this te refieres al botón al que le estás creando la función de onPress y el mismo no tiene ninguna propiedad "attributes" por eso te devuelve undefined. Veo que hay varias incongruencias en tu código, intenta lo siguiente:

Código ActionScript :

mxml.onLoad = function(succes:Boolean):Void {
   
   if (succes) {
      
      var nodes:Array = this.firstChild.childNodes;
      var cont:MovieClip;
      var item:MovieClip;
      var i:Number;
      
      for (i = 0; i < nodes.length; i++) {
         
         cont = fotos_mc.createEmptyMovieClip("diapo" + i, fotos_mc.getNextHighestDepth());
         cont.numero = i;
         
         item = cont.createEmptyMovieClip("diapo", 1);         
         item.loadMovie(nodes[i].attributes.id);
         
         cont.onPress = function():Void{
            
            texto_txt.text = nodes[this.numero].attributes.datos;
            
         }
         
         .
         .
         . //--- El resto de tu código



:D :D GRACIAS !!!! Maestro elchininet !!!!! funciono!!!! :D :D
Te agradezco muchisimooo!!!!

Por arieljbon

56 de clabLevel



 

argentina

msie8
Citar            
MensajeEscrito el 11 May 2009 05:12 pm

arieljbon escribió:

elchininet escribió:

En la siguiente función:

Código ActionScript :

fotos_mc.onPress = function(){ 
    texto_txt.text = this.attributes.datos; 
} 


Cuando te refieres a this te refieres al botón al que le estás creando la función de onPress y el mismo no tiene ninguna propiedad "attributes" por eso te devuelve undefined. Veo que hay varias incongruencias en tu código, intenta lo siguiente:

Código ActionScript :

mxml.onLoad = function(succes:Boolean):Void {
   
   if (succes) {
      
      var nodes:Array = this.firstChild.childNodes;
      var cont:MovieClip;
      var item:MovieClip;
      var i:Number;
      
      for (i = 0; i < nodes.length; i++) {
         
         cont = fotos_mc.createEmptyMovieClip("diapo" + i, fotos_mc.getNextHighestDepth());
         cont.numero = i;
         
         item = cont.createEmptyMovieClip("diapo", 1);         
         item.loadMovie(nodes[i].attributes.id);
         
         cont.onPress = function():Void{
            
            texto_txt.text = nodes[this.numero].attributes.datos;
            
         }
         
         .
         .
         . //--- El resto de tu código



:D :D GRACIAS !!!! Maestro elchininet !!!!! funciono!!!! :D :D
Te agradezco muchisimooo!!!!


Hola elchininet, o quien pueda ., mira la quiero hacer mas dificil..., se podrá... en el xml agrege otro atributo que seria, foto que vas ser igual a otra foto, osea buscara el destino del jpg, mira.... hasta hora se hizo que cargue la foto pequeña en el mc vacio y al hacer clic me trae la descripcion, ahora quiero hacer que al traer la descripcion me traiga una foto pequeña del producto en otro mc vacio, en otra ubicación del escenario, que al hacer clic se agrande....se podrá....????
esto tengo en el xml:

Código :

<?xml version="1.0" encoding="utf-8"?>
<imagenes>
   <imagen id="mini/foto1.jpg" descri="tarrito" datos="tarrito de 100g" foto="img/foto1.jpg"/>
   <imagen id="mini/foto2.jpg" descri="jamon" datos="tarrito de 800g" foto="img/foto2.jpg"/>
   <imagen id="mini/foto3.jpg" descri="salchichon" datos="tarrito de 8740g" foto="img/foto3.jpg"/>
   <imagen id="mini/foto4.jpg" descri="bondiola" datos="tarrito de 870g" foto="img/foto4.jpg"/>
</imagenes>


Les agredeceria!!!!! :)

Por arieljbon

56 de clabLevel



 

argentina

firefox
Citar            
MensajeEscrito el 11 May 2009 07:21 pm

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 11 May 2009 08:17 pm

elchininet escribió:

Pue claro que puedes, si utilizas una función genérica de carga puedes mandar a cargar una imagen en el contenedor que desees.


Elchininet, no me quedó claro??? :lol: , lo que me pasaste...., a lo mejor me explique mal.... cuando hace clic en la foto del contenedor me trae la descripcion, y aparte en otro contenedor ubicado en otro lugar, para que quede mejor al lado de la descripcion una foto que cuando hago clic se agrande....

Lo paso en limpio..... me aparecen las imagenes como una galeria, hago click en esa foto y me tendria q aparecer la foto con la descripcion al lado... la descripcion aparece falta la foto, todo eso traído de el xml.

Espero que se me halla entendido bien...., no lo puedo sacar...... :lol: , se me estan quemando los cables!!! :twisted:.

GRACIAS de antemano!!!

Por arieljbon

56 de clabLevel



 

argentina

firefox
Citar            
MensajeEscrito el 12 May 2009 08:10 pm
Bueno eso exactamente fue lo que entendí, la función que te pasé carga una imagen (o un swf) en un movieClip que quieras, lo puedes tener en la escena o lo puedes crear por actionscript. Sólo debes pasarle a la funcion genericLoad el atributo "foto" que tiene el camino a la imagen y el movieClip donde se va a leer.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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