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

Tabla Posiciones XML-AS

Estas en el tema de Tabla Posiciones XML-AS en el foro de Flash y Actionscript en Foros del Web. Buenas soy nuevo en el foro y tengo una serie de problemas espero encontrar solución aqui: Bueno estoy desarrollando una tabla de posiciones de fútbol ...
  #1 (permalink)  
Antiguo 05/02/2008, 01:03
Avatar de ajgbcool  
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 9 años, 10 meses
Puntos: 0
Tabla Posiciones XML-AS

Buenas soy nuevo en el foro y tengo una serie de problemas espero encontrar solución aqui:

Bueno estoy desarrollando una tabla de posiciones de fútbol en XML que el XML es algo asi

Código:
 <posiciones>

 <caracas nombre="Caracas FC" win="4" draw="3" lose="5" />

 <aragua nombre="Aragua FC" win="5" draw="7" lose="4" />

 <maracaibo nombre="Maracaibo FC" win="2" draw="8" lose="1" />
el código as es algo asi:

Código:
var numOfItems:Number;

var xml:XML = new XML();
xml.ignoreWhite = true;

var ganar:Array = new Array;
var nombre:Array = new Array;
var perder:Array = new Array;

xml.onLoad = function(){
   var nodes = this.firstChild.childNodes;
   numOfItems = nodes.length;
   for(var i=0;i<numOfItems;i++){
      ganar.push(nodes[i].attributes.win);
      nombre.push(nodes[i].attributes.name);
      perder.push(nodes[i].attributes.lose);
   }
   ganar.sortOn(["ganar", "nombre"], Array.NUMERIC | 2);
   valor1 = ganar[0];
   valor2 = perder[0];
   p1.text = ganar[0];
   p2.text = ganar[1];
   p3.text = ganar[2];
   p4.text = ganar[3];
   n2.text = nombre[0];
}

xml.load("new.xml");

Entonces tengo varios problemas:

1. No tengo problema en multiplicar un array (win) por 3, pero a la hora de sumar me los pone uno al lado de otro en vez de sumarlo.

2. Puedo organizarlos con sortOn() y me los indexa según su valor, pero no he encontrado cómo hacer para que me devuelva los correspondientes valores (nombre, draws y loses) porque éstos mantienen su indice.

Gracias.
  #2 (permalink)  
Antiguo 05/02/2008, 01: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: Tabla Posiciones XML-AS

Para sumar registros, debes declarar la variable como numérica:
Código:
suma = Number(variable1)+Number(variable2);
Y para el segundo problema, es normal que te pase eso puesto que has creado matrices diferentes. Deberías probar a usar una única matriz multidimensional:
Código:
datos[i][ganados] = nodes[i].attributes.win;
datos[i][nombre] = nodes[i].attributes.name;
datos[i][perdidos] = nodes[i].attributes.lose;
Y luego ordenas por ganados.
Ah, bienvenido al foro y saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #3 (permalink)  
Antiguo 05/02/2008, 01:59
Avatar de ajgbcool  
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 9 años, 10 meses
Puntos: 0
Re: Tabla Posiciones XML-AS

Gracias por la bienvenida, tienen soluciones muy buenas, como la que me acabas de dar de la suma...

Pero ahora y disculpa la ignorancia, cómo hago la "única matriz multidimensional", no entendi muy bien eso...

Muchas Gracias...
  #4 (permalink)  
Antiguo 05/02/2008, 02:21
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: Tabla Posiciones XML-AS

Bueno, la verdad es que lo expliqué muy por encima.
En vez de crear tres matrices (ganar, nombre y perder) haces una sola matriz que tenga dentro otras matrices, ¿vale? Llamaré a esta supermatriz 'datos'. El primer valor será el nombre, el segundo los partidos ganados y el tercero los partidos perdidos.
Código:
var datos:Array = new Array();
for(var i=0;i<numOfItems;i++){
   datos.push(new Array(nodes[i].attributes.name, nodes[i].attributes.win, nodes[i].attributes.lose));
}
Ahora tienes una matric de matrices, es decir, una matriz multidimensional.
Código:
trace(datos[1][0]); // output -> Aragua FC
trace(datos[1][1]); // output -> 5
trace(datos[1][2]); // output -> 4
(Según el xml que adjuntas).
Ahora falta ordenar la matriz por partidos ganados, es decir el valor 1 de cada matriz (el 0 es el nombre y el 2 los perdidos):
Código:
a.sortOn(1, Array.DESCENDING);
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #5 (permalink)  
Antiguo 05/02/2008, 03:02
Avatar de ajgbcool  
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 9 años, 10 meses
Puntos: 0
Re: Tabla Posiciones XML-AS

Muchisimas Gracias de verdad, mejor explicado no pudo estar...
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 14:56.