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

Pregunta tonta cargando xml...

Estas en el tema de Pregunta tonta cargando xml... en el foro de Flash y Actionscript en Foros del Web. Buenas a todos, tengo una duda al cargar los resultados de un xml en el flash. hasta ahora tenia un script ya hecho, que me ...
  #1 (permalink)  
Antiguo 28/09/2007, 04:10
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Pregunta tonta cargando xml...

Buenas a todos,

tengo una duda al cargar los resultados de un xml en el flash. hasta ahora tenia un script ya hecho, que me carga los datos sin problemas.

ahora he creado yo una aplicacion propia, y no soy capaz de cargar mas de un dato, es decir, no me sale hacer el bucle. tengo en pantalla dos cajas de texto dinamico, y me gustaria que se duplicaran tantas veces como registros haya.

el script es este:

Código:
stop()

var datos:XML = new XML();

datos.ignoreWhite = true;

System.useCodepage = true;

datos.load("phpLoads/loadNumero.php");

datos.onLoad = function(exito) {
	
	numero = datos.firstChild.childNodes[0].attributes.numero;
	
	tipo = datos.firstChild.childNodes[0].attributes.tipo;

	
};
alguien podria decirme como?

saludos,

ferranWEB
  #2 (permalink)  
Antiguo 28/09/2007, 04:50
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

En el código que has colgado no hay ningún bucle. Tan solo metes en las variables numero y tipo los valores con índice 0 del xml.
Cuando quieras recorrer el xml, debes hacerlo en función al número de nodos que hay:
Código:
for (i=0; i<datos.firstChild.childNodes.length; i++) {
   ...
}
  #3 (permalink)  
Antiguo 28/09/2007, 05:59
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

buenas mahalo,

no acabo de entender lo que me dices, soy mas de php y bases de datos que de flash.. jajajaj

a ver si puedes decirme todo el completo. lo que he hecho es meter las dos textbox dentro de un movieclip, pq supongo que sera lo que tengo que duplicar.. no?

saludos, y gracias!
  #4 (permalink)  
Antiguo 28/09/2007, 06:20
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

he probado a hacer esto:

Código:
datos.onLoad = function(exito) {
	
	for (i=0; i<datos.firstChild.childNodes.length; i++) {
		
	mc.numero = datos.firstChild.childNodes[i].attributes.numero;
	mc.tipo = datos.firstChild.childNodes[i].attributes.tipo;
	
	}
esto me muestra solo el segundo resiultado, y si pongo [0] el primero, y si pong [1] el segundo... como hago para que me muestre todos?

saludos
  #5 (permalink)  
Antiguo 28/09/2007, 07:24
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

Vas bien, pero estás cargando los contenidos del xml en las mismas variables:
numero=1;
numero=2;
numero=3;
...
Al final, numero será igual al último dato que le hayas asignado.

Yo no sé qué quieres hacer con los datos del xml, así que no puedo ayudarte. Explica este punto y a ver qué se puede hacer.
  #6 (permalink)  
Antiguo 28/09/2007, 10:10
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

buenas mahalo.

tengo en una base de datos registros, que tienen un campo numero y campo tipo. quiero mostrar en pantalla todos los registros que tengo. ahora solamente me carga uno, aunque hayan 10. es decir, algo asi:

numero: 12345
tipo: lunes

y tantos registros como hayan. se me entiende ahora?

saludos,

ferranWEB
  #7 (permalink)  
Antiguo 01/10/2007, 02:28
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

Ya, pero el tema es cómo quieres mostrarlos.
Código:
datos.onLoad = function(exito) {
	for (i=0; i<datos.firstChild.childNodes.length; i++) {
		mc.numero = datos.firstChild.childNodes[i].attributes.numero;
		mc.tipo = datos.firstChild.childNodes[i].attributes.tipo;
		trace (mc.numero+", "+mc.tipo);
	}
}
Así comprobaras en la ventana output que sí funciona bien, pero que el fallo es a la hora de mostrar los resultados.
  #8 (permalink)  
Antiguo 01/10/2007, 03:04
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

buenas mahalo,

el script funciona bien, es decir, el trace me saca los 5 numeros que tengo insertados en la base de datos. pero en pantalla, solo me muestra el ultimo registro.

que tengo que hacer para mostrarlos en pantalla?

saludos
  #9 (permalink)  
Antiguo 01/10/2007, 03:49
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

Código:
datos.onLoad = function(exito) {
	if (exito) {
		for (i=0; i<datos.firstChild.childNodes.length; i++) {
			var numeroTxt:TextField = this.createTextField("numero"+i, this.getNexthHighestDepth(), coordX, coordY, ancho, alto);
			var tipoTxt:TextField = this.createTextField("tipo"+i, this.getNexthHighestDepth(), coordX, coordY, ancho, alto);
			tipoTxt.text = datos.firstChild.childNodes[i].attributes.numero;
			tipoTxt.text = datos.firstChild.childNodes[i].attributes.tipo;
		}
	}
}
Este ejemplo crea campos de texto para cada dato. Debes reemplazar coordX y coordY por las coordenadas donde quieras colocarlos y el ancho y alto de cada campo de texto.
Es un poco engorroso. Otra opción es el componente DataGrid.

Saludos!
  #10 (permalink)  
Antiguo 01/10/2007, 10:09
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

mahalo, no me sale!

he creado un movieclip, ok? dentro de ese mc tengo los dos campos de texto, que son var numero y tipo. no hay ninguna manera de duplicar el movieclip, dejando un espacio entre ellos?

saludos
  #11 (permalink)  
Antiguo 02/10/2007, 01:49
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

Para duplicar un mc que tienes en el escenario está el método duplicateMovieClip. Si en el escenario tienes un mc con nombre de instancia pelicula:
Código:
pelicula.duplicateMovieClip("nuevo_nombre", profundidad);
Y puedes añadirle un objeto para situarlo:
Código:
pelicula.duplicateMovieClip("nuevo_nombre", profundidad, {_x:100, _y:100});
  #12 (permalink)  
Antiguo 02/10/2007, 03:24
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

mahalo,

primero darte las gracias por tu paciencia. pero es que no me salgo. te pongo todo el codigo que tengo:

Código:
stop()

var datos:XML = new XML();

datos.ignoreWhite = true;

System.useCodepage = true;

datos.load("loadLoterias.php");

datos.onLoad = function(exito) {
	
	for (i=0; i<datos.firstChild.childNodes.length; i++) {
	loteria.numero = datos.firstChild.childNodes[i].attributes.numero;
	loteria.tipo = datos.firstChild.childNodes[i].attributes.tipo;
	loteria.duplicateMovieClip("prueba", loteria,{_x:100+i, _y:100+i});
	}
};
y esto lo que me hace es mostrarme un mc sin nada, y el segundo con los datos del segundo registro. el problema es que no me muestra los dos mc (datos que hay en la bd).

a ver si poniendote el codigo conseguimos hacer funcionar esto de una vez!! solo pretendo listar el contenido de una base de datos en flash!! ahjajaja

saludos,

ferranWEB
  #13 (permalink)  
Antiguo 02/10/2007, 03:37
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

buenas mahalo, he probado con esto:

loteria.numero += datos.firstChild.childNodes[i].attributes.numero;
loteria.tipo += datos.firstChild.childNodes[i].attributes.tipo;

y esto me muestra los dos datos, pero uno seguido del otro:

10005400

en vez de

1000
5400

por si ayuda,

ferranWEB
  #14 (permalink)  
Antiguo 02/10/2007, 08:26
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

(Copiado y rectificado del último código que colgaste)
Código:
stop()

var datos:XML = new XML();

datos.ignoreWhite = true;

System.useCodepage = true;

datos.load("loadLoterias.php");

datos.onLoad = function(exito) {

	for (i=0; i<datos.firstChild.childNodes.length; i++) {
	loteria.duplicateMovieClip("prueba"+i, i,{_x:100, _y:100+25*i});
	this["prueba"+i].numero = datos.firstChild.childNodes[i].attributes.numero;
	this["prueba"+i] = datos.firstChild.childNodes[i].attributes.tipo;
	}
};
  #15 (permalink)  
Antiguo 02/10/2007, 08:56
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

buenas mahalo,

no me muestra nada en pantalla... que puede pasar?

saludos
  #16 (permalink)  
Antiguo 02/10/2007, 09:11
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

Ups, hay un error en una de las líneas que puse:

this["prueba"+i].tipo = datos.firstChild.childNodes[i].attributes.tipo;
  #17 (permalink)  
Antiguo 02/10/2007, 09:26
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

Espera, no se puede usar this dentro de un controlador onLoad.

_root["prueba"+i].numero = datos.firstChild.childNodes[i].attributes.numero;
_root["prueba"+i].tipo = datos.firstChild.childNodes[i].attributes.tipo;
  #18 (permalink)  
Antiguo 02/10/2007, 09:42
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Re: Pregunta tonta cargando xml...

gracias mahalo!! por fin!! jajaja. ya ha salido lo que buscabamos, aunque el tipo me sale encima del segundo nuimero, supongo que sera por problema de las coordenadas. una ultima cosa. al lado de cada numero quiero poner un boton que sea +info, y que al clickar sepa el numero?

saludos
  #19 (permalink)  
Antiguo 02/10/2007, 09:52
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: Pregunta tonta cargando xml...

Vas a tener que crear un botón. Una vez creado, en la biblioteca haces clic con el botón derecho del ratón y accedes a Vinculación. Ahí marcas "exportar para AS" (o algo así) y le das un identificador de vinculación (por ejemplo "boton").
Código:
datos.onLoad = function(exito) {
	for (i=0; i<datos.firstChild.childNodes.length; i++) {
	loteria.duplicateMovieClip("prueba"+i, i,{_x:100, _y:100+25*i});
	_root["prueba"+i].numero = datos.firstChild.childNodes[i].attributes.numero;
	_root["prueba"+i].tipo = datos.firstChild.childNodes[i].attributes.tipo;

	_root.attachMovie("boton","boton"+i, 100+i, {_x:200,_y:100+25*i});
	_root["boton"].onRelease=function(){
		trace(this._name.substr(5));
	}

	}
};
Con attachMovie creamos una instacia de un clip de película de la biblioteca en el escenario a través de su nombre de vinculación. Ojo con no repetir profundidades (mírate this.getNextHighestDepth()).
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:25.