Tema: Flash + XML
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/05/2007, 19:21
Avatar de Jowy
Jowy
 
Fecha de Ingreso: febrero-2007
Ubicación: En la red
Mensajes: 232
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Flash + XML

Hola TMeister. El código que uso es este.

Código:
coches = new XML();
coches.ignoreWhite = true;
coches.onLoad = function(ok) {
	if (ok) {
		//procesar datos
		//Familiares
		familiares = this.firstChild.firstChild.firstChild.childNodes;
		for (i=0; i<familiares.length; i++) {
			var nuevoProyecto = filaFamiliares.attachMovie('MC_template', 'coche'+i, i);
			var distanciaFotos = 89;
			nuevoProyecto._x = i*distanciaFotos;
			nuevoProyecto.marca.text = familiares[i].attributes.marca;
			nuevoProyecto.imagen.thumb.imagename = familiares[i].attributes.thumbnail;
			nuevoProyecto.imagen.thumb.imgBlank.loadMovie('imagenes/thumbs/'+familiares[i].attributes.thumbnail);
			filaFamiliares._x = 512;
			filaFamiliares._y = 44;
		}
		//Deportivos
		deportivos = this.firstChild.firstChild.firstChild.nextSibling.childNodes;
		for (i=0; i<deportivos.length; i++) {
			var nuevoProyecto = filaDeportivos.attachMovie('MC_template', 'coche'+i, i);
			var distanciaFotos = 89;
			nuevoProyecto._x = i*distanciaFotos;
			nuevoProyecto.marca.text = deportivos[i].attributes.marca;
			nuevoProyecto.imagen.thumb.imagename = deportivos[i].attributes.thumbnail;
			nuevoProyecto.imagen.thumb.imgBlank.loadMovie('imagenes/thumbs/'+deportivos[i].attributes.thumbnail);
			filaDeportivos._x = 512;
			filaDeportivos._y = 142;
		}
		//Berlinas
		berlinas = this.firstChild.firstChild.firstChild.nextSibling.nextSibling.childNodes;
		for (i=0; i<berlinas.length; i++) {
			var nuevoProyecto = filaBerlinas.attachMovie('MC_template', 'coche'+i, i);
			var distanciaFotos = 89;
			nuevoProyecto._x = i*distanciaFotos;
			nuevoProyecto.marca.text = berlinas[i].attributes.marca;
			nuevoProyecto.imagen.thumb.imagename = berlinas[i].attributes.thumbnail;
			nuevoProyecto.imagen.thumb.imgBlank.loadMovie('imagenes/thumbs/'+berlinas[i].attributes.thumbnail);
			filaBerlinas._x = 512;
			filaBerlinas._y = 240;
		}
		//Compactos
		compactos = this.firstChild.firstChild.firstChild.nextSibling.nextSibling.nextSibling.childNodes;
		for (i=0; i<compactos.length; i++) {
			var nuevoProyecto = filaCompactos.attachMovie('MC_template', 'coche'+i, i);
			var distanciaFotos = 89;
			nuevoProyecto._x = i*distanciaFotos;
			nuevoProyecto.marca.text = compactos[i].attributes.marca;
			nuevoProyecto.imagen.thumb.imagename = compactos[i].attributes.thumbnail;
			nuevoProyecto.imagen.thumb.imgBlank.loadMovie('imagenes/thumbs/'+compactos[i].attributes.thumbnail);
			filaCompactos._x = 512;
			filaCompactos._y = 338;
		}
		//Todoterrenos
		todoterrenos = this.firstChild.firstChild.firstChild.nextSibling.nextSibling.nextSibling.nextSibling.childNodes;
		for (i=0; i<todoterrenos.length; i++) {
			var nuevoProyecto = filaTodoterrenos.attachMovie('MC_template', 'coche'+i, i);
			var distanciaFotos = 89;
			nuevoProyecto._x = i*distanciaFotos;
			nuevoProyecto.marca.text = todoterrenos[i].attributes.marca;
			nuevoProyecto.imagen.thumb.imagename = todoterrenos[i].attributes.thumbnail;
			nuevoProyecto.imagen.thumb.imgBlank.loadMovie('imagenes/thumbs/'+todoterrenos[i].attributes.thumbnail);
			filaTodoterrenos._x = 512;
			filaTodoterrenos._y = 436;
		}
		
	} else {
		trace('Fallo en la carga');
	}
	// end if
};//end function

coches.load('coches.xml');


//Máscaras Filas
var mascara_filaFamiliares:MovieClip = this.createEmptyMovieClip("mascara_filaFamiliares", this.getNextHighestDepth());
with (mascara_filaFamiliares) {
	_x = 329;
	_y = 8;
	beginFill(0x00000, 100);
	moveTo(0, 0);
	lineTo(519, 0);
	lineTo(519, 98);
	lineTo(0, 98);
	lineTo(0, 0);
}
filaFamiliares.setMask(mascara_filaFamiliares);

var mascara_filaDeportivos:MovieClip = this.createEmptyMovieClip("mascara_filaDeportivos", this.getNextHighestDepth());
with (mascara_filaDeportivos) {
	_x = 329;
	_y = 106;
	beginFill(0x00000, 100);
	moveTo(0, 0);
	lineTo(519, 0);
	lineTo(519, 98);
	lineTo(0, 98);
	lineTo(0, 0);
}
filaDeportivos.setMask(mascara_filaDeportivos);

var mascara_filaBerlinas:MovieClip = this.createEmptyMovieClip("mascara_filaBerlinas", this.getNextHighestDepth());
with (mascara_filaBerlinas) {
	_x = 329;
	_y = 207;
	beginFill(0x00000, 100);
	moveTo(0, 0);
	lineTo(519, 0);
	lineTo(519, 98);
	lineTo(0, 98);
	lineTo(0, 0);
}
filaBerlinas.setMask(mascara_filaBerlinas);

var mascara_filaCompactos:MovieClip = this.createEmptyMovieClip("mascara_filaCompactos", this.getNextHighestDepth());
with (mascara_filaCompactos) {
	_x = 329;
	_y = 302;
	beginFill(0x00000, 100);
	moveTo(0, 0);
	lineTo(519, 0);
	lineTo(519, 98);
	lineTo(0, 98);
	lineTo(0, 0);
}
filaCompactos.setMask(mascara_filaCompactos);

var mascara_filaTodoterrenos:MovieClip = this.createEmptyMovieClip("mascara_filaTodoterrenos", this.getNextHighestDepth());
with (mascara_filaTodoterrenos) {
	_x = 329;
	_y = 401;
	beginFill(0x00000, 100);
	moveTo(0, 0);
	lineTo(519, 0);
	lineTo(519, 98);
	lineTo(0, 98);
	lineTo(0, 0);
}
filaTodoterrenos.setMask(mascara_filaTodoterrenos);
Dejo un enlace con el .fla y los archivos necesarios (imagenes, xml, etc..) por si alguien quiere ver la galería y me ayuda a resolver el problema. La galería está muy chula y si la acabo la voy a colgar como tutorial... Amm, en el archivo para bajar hay un tambien un componente wapisimo para hacer scrolls dinamicos con easing d lo que sea solo con arrastrar al clip q kieres scrolear. Es necesario para exportar la pelicula y que funcionen los scrolls.

Bien, pues eso, una ayudita por favor, que esto lo llevo atrancado un tiempo. Que podría hacer para q se carguen los detalles de cada coche en el MC: ("Ficha_Detalles"). Como hacer que flash sepa que nodo del xml debe leer para cada coche y se carguen por ejemplo los datos del Ferrari? Como habreis visto se genera un boton sobre cada coche.


Aquí está toda la galería para descargar [1,3mb](solo tiene unos pocos coches para probar)
http://www.mytempdir.com/1338487


Muchas Gracias

Última edición por Jowy; 25/05/2007 a las 21:40