Comunidad de diseño web y desarrollo en internet online

problema con array

Citar            
MensajeEscrito el 20 Ene 2009 07:13 pm
hola estoy haciendo un juego en el ke guarda el puntaje en una tabla de posiciones ( el juego es local no online ), lo realize con sharedobjects y array, pero a la hora de organizar los puntajes descendentes me toma los puntos como si fuera string, por ejemplo al final de la lista me ordena asi...

Código :

salida:
3250
3
24
1562
101

y para ordenrlos utilizo este codigo...

Código :

score_so.sortOn([pts, nombre], Array.DESCENDING | Array.NUMERIC);
for(q=0;q<score_so.length;q++){
   nombre_txt.text += q + 1 + ") " + score_so[q].nombre + "\n";
   puntos_txt.text += score_so[q].pts + "\n";
}

alguien podria ayudarme si estoy haciendo algo mal?
tambien probe dumando score_so[0].pts + score_so[1].pts y el resultado es 32503...
no se si hay forma de ke score_so.pts pueda pasarse a number?

Muchas gracias!!

Por fabri_bit

36 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Ene 2009 08:10 pm
Hazle un cast a Number

Number(tuvariable)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Ene 2009 08:13 pm
usa casting de este tipo

Código ActionScript :

//cuando hagas sumas de numeros
Number(score_so[0].pts) + Number(score_so[1].pts);
//cuando iguales a textos
puntos_txt.text += String( Number(score_so[0].pts) + Number(score_so[1].pts) );


Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 20 Ene 2009 08:27 pm
:P me volvio a pasar lo de responder post resueltos :P

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 21 Ene 2009 11:12 am
hola de nuevo, probe de esa manera e igualmente sigo con el problema. me sigue ordenando el array como si fuera un string. supongo ke el problema esta con esto

score_so.sortOn(["pts", "nombre"], Array.DESCENDING | Array.NUMERIC);

¿podrian ayudarme?
Muchas gracias!!

Por fabri_bit

36 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Ene 2009 11:41 am
Dado que quieres ordenar por dos campos distintos (uno Number, otro String) te encontrarás que lo hace por uno o por otro, pero no por ambos a la vez sin hacer tarea extra. Aquí te dejo un ejemplo simple para que juegues:

Código ActionScript :

var puntaje:Array = [{pts:10, nombre:"Zoilo"}, {pts:5, nombre:"Zoraida"}, {pts:5, nombre:"Beba"}, {pts:5, nombre:"Aaron"}, {pts:7, nombre:"Jorge"}]
puntaje.sortOn(["pts", "nombre"], Array.DESCENDING | Array.NUMERIC);
for(var i:Number=0; i<puntaje.length; i++) trace(puntaje[i].nombre+":"+puntaje[i].pts)


Ve cambiando los conceptos de sortOn para ver que pasa. En cuanto a la data que te traes del SO, cópialo a un array de objetos parecido al que muestro (haciendo los casts correspondientes) antes de usarlo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Ene 2009 12:21 pm
:lol: Siii!! ahora si funciona bien! Muchas gracias! probe pasando el SO al nuevo array haciendo el cast a pts anteriormente y funciona como debe ser! cuando este terminado por completo lo subire a tutoriales.

Por fabri_bit

36 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.