Foros del Web » Creando para Internet » Flash y Actionscript »

addChild de varios clips en AS3

Estas en el tema de addChild de varios clips en AS3 en el foro de Flash y Actionscript en Foros del Web. Hola amigos Tengo una duda en en AS3. En AS2, para incluir varios clips que estan en la biblioteca en el escenario principal, una manera ...
  #1 (permalink)  
Antiguo 19/01/2009, 03:06
 
Fecha de Ingreso: junio-2008
Mensajes: 51
Antigüedad: 9 años, 5 meses
Puntos: 0
addChild de varios clips en AS3

Hola amigos

Tengo una duda en en AS3. En AS2, para incluir varios clips que estan en la biblioteca en el escenario principal, una manera de hacerlo es la siguiente:

for (i=0; i<200; i++) {
this.attachMovie("circulo", "circulo"+i, i+1); /* afegim a
diferents nivells*/
_root["circulo"+i]._x = random(400);
_root["circulo"+i]._y = random(300);
_root["circulo"+i]._xscale = random(100);
_root["circulo"+i]._yscale = _root["circulo"+i]._xscale;
}

En AS3 esto ya no vale. Se ve que ya no se linkean sino que al clip se le da un nombre de clase. He encontrado como insertar un solo clip:

var newMC: resultado = new resultado(); //resultado es el nom de la clase que li he donat al clip
this.addChild(newMC); //ara la funció és addChild
this.newMC.x = 200;
this.newMC.y = 200;

Pero en el momento que quiero insertar varios clips no se ocmo hacerlo. Una opción totalmente descartada es la de definir mas variables del tipo resultados, ya que en función de unas condiciones quiero que salgan más o menos clips. Lo que he pensado es hacer una matriz de objetos resultados peor no se bien bien como hacerlo.

¿Alguna sugerencia?

Muchas gracias!!!!!!!

Última edición por gabiango; 19/01/2009 a las 07:44
  #2 (permalink)  
Antiguo 19/01/2009, 07:39
 
Fecha de Ingreso: junio-2008
Mensajes: 51
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: adChild de varios clips en AS3

Ya lo tengo!

Para hecer esto he hecho lo siguiente:

1 - Me creo las sentencias for y las sentencias if que necesito para hacer el filtrado

2 - creo variables dinámicas de la clase que tengo en mi biblioteca, en mi caso la clase es resultado, que tiene un par de textos:

this["resultado_"+i_result] = new resultado();

3 - añado el clip en la capa que me conviene:

addChildAt(this["resultado_"+i_result],2);

4 - relleno los dos textos que estan en la clase resultado a partir de un XML

this["resultado_"+i_result].titulo.text=caracteristicas_XML.producto[i_result][email protected];//asignamos nombre this["resultado_"+i_result].precio.text=caracteristicas_XML.producto[i_result][email protected]+" euros";//asignamos precio

5 - posiciono los clips en función de unas condiciones

if (alternador=="arriba") {
this["resultado_"+i_result].x=x_pos;
this["resultado_"+i_result].y=y_pos;
alternador="abajo";
} else if (alternador=="abajo") {
this["resultado_"+i_result].x=x_pos;
this["resultado_"+i_result].y=y_pos+130;
x_pos=x_pos+ 320;
alternador="arriba";
contador++;
}


6 - por último asigno i_result a una matriz que en el siguiente post explicaré para que sirve

matriz_resultados[contador_resultados]=i_result;

7 - El código completo queda así:

for (var i_result:int = 0; i_result<caracteristicas_XML.producto.length(); i_result++) {

for (var i_producto:int = 0; i_producto<productos_a_buscar.length; i_producto++) {

if (productos_a_buscar[i_producto]==1) {

if (matriz_poductos[i_producto]==caracteristicas_XML.producto[i_result][email protected]_producto) {

this["resultado_"+i_result] = new resultado();//definimos el clip del resultado
addChildAt(this["resultado_"+i_result],2);//añadimos el clip a la escena
this["resultado_"+i_result].titulo.text=caracteristicas_XML.producto[i_result][email protected];//asignamos nombre
this["resultado_"+i_result].precio.text=caracteristicas_XML.producto[i_result][email protected]+" euros";//asignamos precio
//Posicionamos el botón
if (alternador=="arriba") {
this["resultado_"+i_result].x=x_pos;
this["resultado_"+i_result].y=y_pos;
alternador="abajo";
} else if (alternador=="abajo") {
this["resultado_"+i_result].x=x_pos;
this["resultado_"+i_result].y=y_pos+130;
x_pos=x_pos+ 320;
alternador="arriba";
contador++;
}
matriz_resultados[contador_resultados]=i_result;
contador_resultados++;
trace("resultado_"+i_result);
}
}
}
}


El resultado es una serie de clips que se introducen en el escenario a partir de la biblioteca en función de unas condiciones. Cada clip cargado contiene información de un producto cuyos datos están contenidos en un XML
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:58.