Comunidad de diseño web y desarrollo en internet online

Problema con attachMovie y arrays...

Citar            
MensajeEscrito el 10 Mar 2007 01:03 am
Muy buenas,
Estoy intentando mostrar en el escenario varios arrays de datos extraídos previamente de una Base de Datos via XML.
Estoy adjuntando los clips en tiempo de ejecución de la siguiente forma:

// Para cada una de las acciones
for (aa=0; aa<acciones.length; aa++) {
//trace(acciones.length);
_root.contenedor.attachMovie("mc_accion", "mc_accion"+aa, aa);
_root.contenedor["mc_accion"+aa]._x = 140;
_root.contenedor["mc_accion"+aa]._y = (intPosicion * intSeparar);
_root.contenedor["mc_accion"+aa].tx_accion = acciones[aa];


_root.contenedor.attachMovie("mc_equipo", "mc_equipo"+aa, aa);
_root.contenedor["mc_equipo"+aa]._x = 300;
_root.contenedor["mc_equipo"+aa]._y = (intPosicion * intSeparar);
_root.contenedor["mc_equipo"+aa].tx_equipo = equipo[aa];


_root.contenedor.attachMovie("mc_icono", "mc_icono"+aa, aa);
_root.contenedor["mc_icono"+aa]._x = 95;
_root.contenedor["mc_icono"+aa]._y = (intPosicion * intSeparar);
_root.contenedor["mc_icono"+aa].tx_icono = icono[aa];

De estos últimos arrays acciones, equipo, icono,... sólo se muestra uno en el escenario, el que tenga la posición x más pequeña, en este caso icono, y no se muestran los demás campos.
En el debug de la película es como si sólo estuviera un sólo array en el contenedor. Los demás no aparecen.
A ver si alguién puede decirme algo, o es que no soporta más de un array, ...

Un saludo y gracias.

Por NaOH

7 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 10 Mar 2007 01:45 am
Parece un problema de profundidad, si te fijas, a todos les asignas la misma (aa), lo que hace que el último se la quede.

Te recomiendo que sustituyas el "aa" por "_root.contenedor.getNextHighestDepth()", quedando cada attach así:

Código :

_root.contenedor.attachMovie("mc_icono", "mc_icono"+aa, _root.contenedor.getNextHighestDepth());

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 10 Mar 2007 04:05 pm
Efectivamente, se trataba de un problema de profundidad. Todo resuelto.

Muchísimas gracias.
NaOH

Por NaOH

7 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 10 Mar 2007 05:49 pm
Hola Sheer, una cuestión.
Ahora mismo me salen todos los campos en el escenario, pero hay dos campos que se muestran "descolocados". Te muestro el código (pena que no puedas ver un screenshot).


_root.createEmptyMovieClip("contenedor", 500);
_root.contenedor._x = 100;
_root.contenedor._y = 100;
// Construímos la lista
intContaAcciones = 0;
//intContaRepres = 0;
intPosicion = 0;
intSeparar = 30;

// Para cada una de las acciones
for (aa=0; aa<acciones.length; aa++) {
//trace(acciones.length);

//_root.clip_fila.mc_sum_acciones0.tx_sum_acciones = sumatorio[aa];





_root.contenedor.attachMovie("mc_equipo", "mc_equipo"+aa, _root.contenedor.getNextHighestDepth());
_root.contenedor["mc_equipo"+aa]._x = 300;
_root.contenedor["mc_equipo"+aa]._y = (intPosicion * intSeparar);
_root.contenedor["mc_equipo"+aa].tx_equipo = equipo[aa];

if (icono[aa]==1){ //se ve descolocado !!!!!!!!!!!!!!!!!!!!!!!!
_root.contenedor.attachMovie("mc_icono", "mc_icono"+aa, _root.contenedor.getNextHighestDepth());
_root.contenedor["mc_icono"+aa]._x = 95;
_root.contenedor["mc_icono"+aa]._y = (intPosicion * intSeparar);
//_root.contenedor["mc_icono"+aa] = icono[aa];
}

_root.contenedor.attachMovie("mc_jugador", "mc_jugador"+aa, _root.contenedor.getNextHighestDepth());
_root.contenedor["mc_jugador"+aa]._x = 220;
_root.contenedor["mc_jugador"+aa]._y = (intPosicion * intSeparar);
_root.contenedor["mc_jugador"+aa].tx_jugador = jugador[aa];


_root.contenedor.attachMovie("mc_sum_acciones", "mc_sum_acciones"+aa, _root.contenedor.getNextHighestDepth());
_root.contenedor["mc_sum_acciones"+aa]._x = 140;
_root.contenedor["mc_sum_acciones"+aa]._y = (intPosicion * intSeparar);
_root.contenedor["mc_sum_acciones"+aa].tx_sum_acciones = sumatorio[aa];

//_root.contenedor.attachMovie("mc_accion", "mc_accion"+aa, aa);
_root.contenedor.attachMovie("mc_accion", "mc_accion"+aa, _root.contenedor.getNextHighestDepth());
_root.contenedor["mc_accion"+aa]._x = 380;
_root.contenedor["mc_accion"+aa]._y = (intPosicion * intSeparar);
//_root.contenedor["mc_accion"+aa].width = 200; //no funciona y se ve descolocado !!!!!!!!!!!!!!!!!
_root.contenedor["mc_accion"+aa].tx_accion = acciones[aa];

_root.contenedor.attachMovie("mc_tiempo", "mc_tiempo"+aa, _root.contenedor.getNextHighestDepth());
_root.contenedor["mc_tiempo"+aa]._x = 100;
_root.contenedor["mc_tiempo"+aa]._y = (intPosicion * intSeparar);
_root.contenedor["mc_tiempo"+aa].backgroundColor = 0x000099; //no funciona
_root.contenedor["mc_tiempo"+aa].tx_tiempo = tiempo[aa];

intPosicion++;
}


He puesto donde hay error o no funciona el código. El icono y la acción se muestran más abajo de donde tienen que ir. Una fila todos alineados.

Muchas gracias. Un saludo.

Por NaOH

7 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 10 Mar 2007 06:20 pm
Sustituye "width" por "_width", quedando así:

Código :

_root.contenedor["mc_accion"+aa]._width


En un componente, no poner el guión bajo sería correcto pero, tratándose de un MovieClip, el acceso a la mayoría de propiedades debe ir acompañado de éste.

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 12 Mar 2007 03:16 pm
Soda cáustica, por favor usá las etiquetas de código:

[ code ] trace ("Tu código aquí"); [ /code ]

(sin los espacios)

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie

 

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