Comunidad de diseño web y desarrollo en internet online

problemas con un duplicatemovieclip

Citar            
MensajeEscrito el 01 Nov 2010 11:20 am
Os comento, tengo una web en la que leo la info de un XML y voy dulicando movieclips, algo normal, salvo en una ocasión, que lo que quiero es duplicarlos pero dentro de otro movieclip para luego moverlo y meterlo tras una máscara.
Lo que hago normalmente es:

Código :

function repetirBotonColor(serie) {
   colores = obj_xml.firstChild.childNodes[serie].childNodes[2];
   var total_colores:Number = colores.childNodes.length; //trace(total_colores);
   
   // Repito los colores de la coleccion
   for (var k=0; k<total_colores; k++) {
      color_jpg = colores.childNodes[k].attributes.jpg; //trace(color_jpg);
      nombre_del_color = colores.childNodes[k].attributes.nombre; //trace(nombre_del_color);

      var newY_color:Number = yInicio_color;
      var newX_color:Number = xInicio_color - (k * 42.5); 
      
      var color_repetido:MovieClip = _root.contenedor_series.color_mc.duplicateMovieClip("color_repetido" + k, k+1000, {_x:newX_color, _y:newY_color});

      _root.contenedor_series['color_repetido'+k].color_cont.loadMovie(ruta_img+"38x38/"+color_jpg);
      _root.contenedor_series['color_repetido'+k].nombre_color.htmlText = nombre_del_color;
      }
   }


Hasta aquí todo correcto, es una especie de muestras de color, pero ahora tengo que hacer lo mismo con otro movieClip, pero quiero meterlo dentro de otro y lo que he hecho ha sido esto:

Código :

function repetirBotonThumbnail(serie) {
   thumbnails = obj_xml.firstChild.childNodes[serie].childNodes[1]; 
   var total_thumbnails:Number = thumbnails.childNodes.length; //trace ('total thumbnails ' + total_thumbnails);

   // Repito los thumbnails de todos los ambientes de la coleccion
   for (var i=0; i<total_thumbnails; i++) {
      thumbnail = thumbnails.childNodes[i].attributes.jpg; //trace(thumbnail);

      var newY_th:Number = yInicio_th;
      var newX_th:Number = xInicio_th + (i * 208); 

      var thumbnail_repetido:MovieClip = _root.contenedor_series.thumbnails_container.th_ambiente_mc.duplicateMovieClip("repeticion_th" + i, i + 100, {_x: newX_th, _y: newY_th});
             _root.contenedor_series.thumbnails_container["repeticion_th" + i].th_ambiente.loadMovie(ruta_img + "206x105/" + thumbnail);
      }
   }


La diferencia es que en este caso lo meto dentro de un movieclip llamado "thumbnails_container" que antes no lo hacía, pero el clip "th_ambiente_mc" (el original que uso para la repetición, también lo tengo dentro del "thumbnails_container". Lo que me da rabia es que lo tenía hecho, pero se me fastidió el archivo de flash, y en la versión anterior, no lo tenía hecho y ahora me estoy volviendo loco y no lo consigo...

Gracias de antemano

Por pitufogran

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Nov 2010 01:41 pm
Veo que tienes un problema de rutas, dos sugerencias
- Mueve el código que funciona a la línea de tiempo de thumbnails_container, te ahorras lookups, tu code funciona y mejora el rendimiento
- Usa attachMovie, permite mucho mayor control y te independiza de un original ubicado en el escenario

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Nov 2010 04:01 pm
y tengo que leer el XML tambien el thumbnail_container? tengo una duda, porque la repetición de los thumbnails depende de un botón que se presiona en otro punto previo. Como le digo qué serie de thumbnails debe cargar si lo muevo a thumbnails_container?

gracias por la respuesta, a ver si poco a poco lo sacamos...

Por pitufogran

15 de clabLevel



 

safari
Citar            
MensajeEscrito el 01 Nov 2010 04:16 pm
¿Que dice el botón?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Nov 2010 04:20 pm

Código ActionScript :

function repetirBotonSeries(_j:Number) {
   var total_series:Number;
   total_series = obj_xml.firstChild.childNodes.length; //trace (total_series);
   
   xInicio=0;
   yInicio=10;

   for (var j=0; j<total_series; j++) {
      
      nombre = obj_xml.firstChild.childNodes[j].attributes.nombre;
            
      var newY:Number = j * (boton_original._height - 1) + yInicio_serie;
      var newX:Number = xInicio_serie;
         var repetido:MovieClip = boton_original.duplicateMovieClip("repetido" + j, j+10, {_x:newX, _y:newY});
              
      this['repetido'+j].nombre.htmlText = nombre;
      this['repetido'+j].j = j;   
      this['repetido'+j].onRelease = function() {
         var sel = this.j; 
         _root.serie = this.j;
         
         this['repetido'+j].enabled = true;
         this['repetido'+j].useHandCursor = true;
         
         // Cargo todo el contenido en contenedor_series
         leer_variables(sel);
         mostrar_datos(sel);
         repetirBotonColor(sel);
         repetirBotonDecorado(sel);
         repetirBotonThumbnail(sel);
         }; //onRelease
      } // for
   } // repetirBotonSeries



Esta función es la que llama a contenedor_series y ahí dentro va metiendo información (leer_variables(), mostrar_datos(), repetirBotonColor(), etc)

Por pitufogran

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Nov 2010 05:45 pm
con attachMovie, lo he conseguido, pero ahora no consigo convertir los movieclips creados en botones, te pego el código:

Código ActionScript :

      _root.contenedor_series.thumbnails_container['repeticion_th'+i].sel = i;
      _root.contenedor_series.thumbnails_container['repeticion_th'+i].th_ambiente.enabled = true;
      _root.contenedor_series.thumbnails_container['repeticion_th'+i].th_ambiente.useHandCursor = true;

      _root.contenedor_serie.thumbnails_containers['repeticion_th'+i].onRelease = function() {
         var sel = this.sel; trace(sel);
         // Hago la acción del botón
         }


Lo he conseguido meter en la máscara y he conseguido hacer el scroll, GRACIAS, ahora sólo me falta esto.

Por pitufogran

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Nov 2010 05:53 pm
Si usas attachMovie y haces loadMovie sobre el attachado, debes esperar a que termine de cargar, sino crea un contenedor interno (al que attachas) para cargar el contenido. Tampoco es necesario un lookup tan largo, aquí un ejemplo

Código ActionScript :

for(var i=0; i<100 i++)
 holder = clipA.clipB.attachMovie("mainHolder", holder+i, i, {_x: 5, _y: 10 *i})
 holder.innerHolder.loadMovie("foto"+i)
 holder.nr = i
 holder.onPress = function(){
    trace("Soy nr "+this.nr)
 }


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Nov 2010 08:55 am
conseguido! mil gracias, la verdad es que con lo del holder se ha simplificado mucho mi código, esto de ser autodidacta...

en fin, con esta amabilidad, amenazo con volver en breve con más dudas

saludos

Por pitufogran

15 de clabLevel



 

chrome

 

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