19/01/2009, 07:39
|
| | Fecha de Ingreso: junio-2008
Mensajes: 51
Antigüedad: 16 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].@nombre;//asignamos nombre this["resultado_"+i_result].precio.text=caracteristicas_XML.producto[i_result].@PVP+" 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].@tipo_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].@nombre;//asignamos nombre
this["resultado_"+i_result].precio.text=caracteristicas_XML.producto[i_result].@PVP+" 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 |