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

Saber cuantos elementos/nodos tiene un XML y crear botones a partir de este dato.

Estas en el tema de Saber cuantos elementos/nodos tiene un XML y crear botones a partir de este dato. en el foro de Flash y Actionscript en Foros del Web. Hola amigos, estoy diseñando una pelicula en flash que contiene un movieclip vacío, en el que quiero que se carguen una serie de peliculas swf ...
  #1 (permalink)  
Antiguo 19/05/2009, 08:41
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Saber cuantos elementos/nodos tiene un XML y crear botones a partir de este dato.

Hola amigos, estoy diseñando una pelicula en flash que contiene un movieclip vacío, en el que quiero que se carguen una serie de peliculas swf externas. No se el número de peliculas externas que va a haber, pueden ser 5 como pueden ser 65, etc., por lo que para facilitar las cosas, he creado un archivo XML en el que van a ir las URLs y rutas a las películas, es algo así:

Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<datos_clips>
<clip ruta="peliculas/pelicula_01.swf"/>
<clip ruta="peliculas/pelicula_02.swf"/>
<clip ruta="peliculas/pelicula_03.swf"/>
<clip ruta="peliculas/pelicula_04.swf"/>                            
<clip ruta="peliculas/pelicula_05.swf">
</datos_clips>
Ya en flash, cargo y compruebo el XML de la siguiente manera:


Código PHP:
var pelis_xml:String "pelis_xml.xml";
var 
obj_xml:XML = new XML();
obj_xml.ignoreWhite true;

obj_xml.onLoad = function(exito) {
    if (
exito) {
        
trace("Éxito... Los valores son:");            
        
trace("" obj_xml.firstChild.childNodes[0].attributes.ruta);
        
trace("" obj_xml.firstChild.childNodes[1].attributes.ruta);
        
trace("" obj_xml.firstChild.childNodes[2].attributes.ruta);        
        
trace("" obj_xml.firstChild.childNodes[3].attributes.ruta);        
        
trace("" obj_xml.firstChild.childNodes[4].attributes.ruta);        
    }
    
    else {

        
trace("Error");
    }
};

function 
cargarXML() {
    
obj_xml.load(pelis_xml);
};

cargarXML()

stop(); 
"ignoreWhite" es para ignorar los espacios en blanco, etc.

Y con los "traces" veo que ha cargado correctamente el XML.

Hasta aquí todo bien, todo muy manual.

Ahora la idea es que esto sea algo dinámico, (y es aquí donde necesito que me ayude alguien por que me faltan conocimientos), necesito ayuda en lo siguiente:

1º Crear una función con la que averiguar el número de elementos o "Nodos" que tiene el XML, pues podrían ser 8, 200, 1000, o vete tu a saber cuantos, y guardar ese dato en una variable que poder utilizar.

2º Dependiendo de cuantos elementos o "Nodos" tenga el XML, lograr que se genere de manera automática y mediante algun tipo de "attachMovie" y un "for", un menú de navegación con botoncitos pequeños, cuyo número se incrementará o reducirá dependiendo de cuantos elementos o "Nodos" tenga el XML. Cada botoncito tendrá que enlazar a un nivel, o a un fotograma X, en el que se cargue, dentro del MovieClip, la película que le corresponda.

Espero porfavor vuestra ayuda para "dinamizar" este flash, pues si lo logramos, tendremos una herramienta muy interesante para todos.

Un saludo, ¡y ayuda por favor!

Última edición por walvaRo; 19/05/2009 a las 08:50
  #2 (permalink)  
Antiguo 19/05/2009, 09:29
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Saber cuantos elementos/nodos tiene un XML y crear botones a partir de est

Para saber los nodos del XML: firstChild.chilNodes.length:
Código:
obj_xml.firstChild.chilNodes.length
En el punto 2, te pongo un ejemplo de como mas o menos sería, pero duplicando, despues lo cambias a tu modo:
Código:
// esto podría ir en el evento onLoad
for(var i:Number=0; i<obj_xml.firstChild.childNodes.length; i++){
mc.duplicateMovieClip("mc"+i, i);
this["mc"+i]._x=mc._x+(i*(mc._width+1))
}
Eso haría que duplicaras un movieclip llamado mc, y que las copias aparecieran una a la par de otra.

En lugar de hacer attachMovie, podrías hacer duplicados, y tomando los parametros de los nodos, aunque sean duplicados, contendrían diferente info.

Saludos
  #3 (permalink)  
Antiguo 20/05/2009, 01:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Saber cuantos elementos/nodos tiene un XML y crear botones a partir de est

Hola Ludwingg, he logrado meter en una variable el numero de Nodos que tiene el XML, al final era mas facil de lo que creía, muchisimas gracias.

En cuanto al punto 2, no me queda claro como dar las coordenadas de "x" e "y" al primer "mc", para que el resto de "mcs" duplicados se vayan colocando acorde a estas primeras coordenadas, y a corde al ancho del propio "mc".

¿En que fotograma se duplica el "mc" por defecto?

Tampoco logro imaginar como y donde se van a ver las peliculas, si en el mismo fotograma todas, cargandose y descargandose según se vaya navegando por los botones, o en diferentes fotogramas, o a base de niveles. Sigo siendo un novato en estas cosas.

Muichisimas gracias de antemano.

EDITO:

Estoy probando a incluir la parte del "for" pero no estoy muy seguro de si esto lo debo incluir en el fotograma 1 de la linea de tiempo, o directamente en el "mc" como una "propiedad" o algo así, partiendo de que el primer "mc" lo coloco a mano o mediante un attachMovie desde el fotograma 1 de la linea de tiempo.

Que lio, tengo un monton de dudas.

Un saludo de nuevo.

Última edición por walvaRo; 20/05/2009 a las 02:14
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 04:09.