Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2009, 08:41
walvaRo
 
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