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

XML y Array () en Flash

Estas en el tema de XML y Array () en Flash en el foro de Flash y Actionscript en Foros del Web. Hola mu buenas a todos: ¿Alguien me podría decir como puedo cargar los datos de un xml externo en una matriz de flash? o lo ...
  #1 (permalink)  
Antiguo 26/10/2005, 04:52
Avatar de javiermrr  
Fecha de Ingreso: septiembre-2005
Mensajes: 28
Antigüedad: 19 años, 2 meses
Puntos: 0
XML y Array () en Flash

Hola mu buenas a todos:
¿Alguien me podría decir como puedo cargar los datos de un xml externo en una matriz de flash? o lo que es lo mismo transformar los datos del xml externo en una matriz con la que pueda trabajar

La idea es la siguiente, quiero cargar fotos en un clip que se duplicará en función del número de las mismas y en donde aparecerá el nombre de cada una, lo importante es que quiero llamar a las fotos por su nombre y no por un número (esto sería más facil).

He pensado en utilizar una matriz donde se recojan los nombres de las fotos desde el xml, para que sea por medio de [I]cp_clipduplicado.loadMovie(""matriz) como se carguen las fotos. Y he pensado en utilizar un xml para poder cargar esta matriz pero no sé como hacer esto.

Mi intención es que si yo o alguien que no tenga idea de flash quiere ampliar el número de fotos no tenga que modificar el flash sino simplemente ampliar el xml con los nuevos nombres y pegar las nuevas fotos en la carpeta
  #2 (permalink)  
Antiguo 26/10/2005, 10:36
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 8 meses
Puntos: 0
hummm... no entendi bien, pero algo aglo :D

la lista de nodos secundarios de un xml es un array
esa lista lo puedes asignar a otra viriable para trabajar mas comodamente
por ejemp tenemos el XML en nuestro objeto 'fotos_xml'
cuya estructura es:

Código HTML:
<?xml version="1.0" encoding="UTF-8"?>
<fotos>
	<foto nombre="nombrefoto1" ruta="foto1.jpg" />
	<foto nombre="nombrefoto2" ruta="foto3.jpg" />
	<foto nombre="nombrefoto3" ruta="foto4.jpg" />
</fotos> 
entonces asignamos a lista_fotos los nodos secundarios de <fotos>

Código:
var lista_fotos:Array = fotos_xml.firstChild.childNodes;
ahora lista_fotos ya es un array que contienen dichos nodos

entonces podemos acceder a sus atributos de cada foto de la siguente manera

para la primera foto:
Código:
lista_fotos[0].attributes.nombre;
lista_fotos[0].attributes.ruta;
ahora, para trabajar con ellos lo que haces es duplicar un mc la cantidad de veces como indica la cantidad de fotos, en mi opinion es mejor agregar que duplicar (attachMovie)
lo que debes hacer al momento de duplicar o agregar un mc por cada foto, es que debes pasarle una variable por cada atributo al mc agregado/duplicado

para hacer eso, primero usas una variable de referencia para cada elemento que agregues o dupliques, algo asi:

Código PHP:
for(n=0;lista_fotos.length;n++){
    
//aqui agregamos 'mc_plantilla' y lo asignamos a foto_referencia para trabajar con él
    
foto_referencia _root.attachMovie('mc_plantilla','foto'+n,n,{_x:n*20});
    
//aqui le pasamos las variables que nos interese a cada mc agregado/duplicado
    
foto_referencia.nombre lista_fotos[n].attributes.nombre;
    
foto_referencia.ruta lista_fotos[n].attributes.ruta;

ahora que ya cada mc tiene su ruta y su nombre podemos trabajar con ella

por ejemp, cuando se haga click en cada mc, que muestre el nombre
para ello solo le agregamos la funcion a la foto de referencia

for(n=0;lista_fotos.length;n++){
foto_referencia = _root.attachMovie('mc_plantilla','foto'+n,n,{_x:n* 20});
foto_referencia.nombre = lista_fotos[n].attributes.nombre;
foto_referencia.ruta = lista_fotos[n].attributes.ruta;
//cuando se haga click
foto_referencia.onRelease = function(){
trace(this.nombre);
}
}

:D
si teneis dudas :D
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #3 (permalink)  
Antiguo 02/05/2009, 15:28
 
Fecha de Ingreso: abril-2009
Mensajes: 173
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: XML y Array () en Flash

Hola Luis, como estas? te dejo mi correo [email protected] si puedes o tienes correo hablamos en messenger, estoy super liada con una cosa de as3 beso
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 22:43.