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

Problema con decimales

Estas en el tema de Problema con decimales en el foro de Flash y Actionscript en Foros del Web. Hola, me he topado con un problema, en tiempo atras pregunte acerca de como dar el clima mediante un swf, lo he logrado, lo que ...
  #1 (permalink)  
Antiguo 06/01/2008, 21:42
 
Fecha de Ingreso: septiembre-2007
Mensajes: 53
Antigüedad: 16 años, 7 meses
Puntos: 0
Problema con decimales

Hola, me he topado con un problema, en tiempo atras pregunte acerca de como dar el clima mediante un swf, lo he logrado, lo que pasa ahora es que al recurria a las matgematicas (con actionscript) convierto la temperatura en grados centigrados a Farenheit, pero dicha operacion me da los grados F, con decimales, lo que quisiera saber es como decirle que solo me de los numeros enteros (?)

he aqui el script que uso:

xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp * 1.8 + 32 + " F";

esto me da correctamente los grados Farenheit, pero como les comento... no en numero cerrados, recurro a ustedes porque he navegado un buen y he encontrado cosas que pudieran servir, pero aun no se como aplicarlos a este problemita, de antemano les agradezco
  #2 (permalink)  
Antiguo 06/01/2008, 22:32
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 5 meses
Puntos: 37
Re: Problema con decimales

Busca la documentacion de Math.round, eso te permitira redondear un numero, por ejemplo en:
http://www.cristalab.com/tutoriales/...on-en-flash-mx
  #3 (permalink)  
Antiguo 06/01/2008, 23:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 53
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Problema con decimales

lo he buscado ya, tal vez no lo entiendo bien, si utilizo esto:

trace(Math.round(12.34));

como le digo que que 12.34 no es una cantidad fija, sino lo tomara del la resultante de:

xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp * 1.8 + 32 + " F";

(???)
  #4 (permalink)  
Antiguo 07/01/2008, 03:42
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Re: Problema con decimales

Código:
var gradosF:Number = Math.round(xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp * 1.8 + 32);
trace (gradosF+"F");
Math.round redondea por aproximación, Math.floor redondea por abajo y Math.ceil por arriba.

Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #5 (permalink)  
Antiguo 07/01/2008, 13:25
 
Fecha de Ingreso: septiembre-2007
Mensajes: 53
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Problema con decimales

Agradezco sus atenciones, y disculpen mi bajeza en esto, aqui tienen el script completo que uso, intente ponerlo como me dijiste Mahalo, pero talvez no lo hize bien, aqui lo dejo,

var xmlData=new XML();
xmlData.ignoreWhite=true;
xmlData.onLoad=processXMLData;
xmlData.load("http://weather.yahooapis.com/forecastrss?p=MXCL0013&u=c");

onEnterFrame = function() {
city_name.text = xmlData.firstChild.childNodes[0].childNodes[6].attributes.city+" MX";
city_temp_f.text = xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp * 1.8 + 32 + " F";
city_temp_c.text = xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp + " Cº";
city_condition.text = xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.text;
}


GRACIAS!!!
  #6 (permalink)  
Antiguo 08/01/2008, 01:31
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Re: Problema con decimales

En tu código no veo dónde haces el redondeo. Prueba esto:
Código:
var gradosF:Number = Math.round(xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp * 1.8 + 32);
trace (gradosF+"F");
city_temp_f.text = gradosF + " F";
Primero se calcula la variable gradosF con lo que recibes del xml. Luego lo mandas al campo de texto añadiendo la 'F'.
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #7 (permalink)  
Antiguo 08/01/2008, 11:48
 
Fecha de Ingreso: septiembre-2007
Mensajes: 53
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Problema con decimales

ahora lo he puesto asi y en la ventana del Output al probarlo me sale "NaN F"

var xmlData=new XML();
xmlData.ignoreWhite=true;
xmlData.onLoad=processXMLData;
xmlData.load("http://weather.yahooapis.com/forecastrss?p=MXCL0013&u=c");

onEnterFrame = function() {
city_name.text = xmlData.firstChild.childNodes[0].childNodes[6].attributes.city+" MX";
city_temp_c.text = xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp + " Cº";
city_condition.text = xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.text;
}
var gradosF:Number = Math.round(xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp * 1.8 + 32);
trace (gradosF+" F");

city_temp_f.text = gradosF + " F";
  #8 (permalink)  
Antiguo 08/01/2008, 12:33
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Re: Problema con decimales

A veces hay conflictos entre tipos de variables y conviene declararlas. En este caso, yo haría el siguiente cambio:

var gradosF:Number = Math.round(Number(xmlData.firstChild.childNodes[0].lastChild.childNodes[5].attributes.temp) * 1.8 + 32);

Vamos, que la respuesta del xml esté declarada como Number.
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #9 (permalink)  
Antiguo 08/01/2008, 13:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 53
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Problema con decimales

Me funciono, muchas gracias

sabes que he jugado un poco que esto, quisiera hacer un scroll automatico dando el clima de varias ciudades, dichos datos son un Movie Clip, uno para cada ciudad, con su respectivo script del XML, pero al juntar esos MCs y ponerles una Mascara, el script no funciona, con solo poner una mascara en las capas donde esta el script deja de funcionar, ¿debe mencionarse mediante un script que las instancias estan bajo una capa?

Admiro tu atencion, he checado tu perfil y aunque no quieras te he hecho mi amigo :)
  #10 (permalink)  
Antiguo 09/01/2008, 01:54
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Re: Problema con decimales

¿Cómo aplicas la máscara: por código o por capas? Te recomiendo hacerlo por código, así no tienes que preocuparte de hacer muchas capas, cada una con un mc. Échale un vistazo al método setMask, aunque debes tener en cuenta que una instancia de la máscara sólo puede enmascarar a un mc, por lo que una solución es agrupar tus mc's en un mc y enmascarar este último.
Saludos, que los amigos siempre son bienvenidos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #11 (permalink)  
Antiguo 09/01/2008, 12:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 53
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Problema con decimales

La estaba aplicando por capa "fisica", pero como te comentaba no funcionaba los codigos, y en efecto estan como MC metidos en un MC general, pero checare lo que me recomiendas, apesar de poner mi empeño, creeme que si no lo logro veras nuevamente un post acerca de esto,

Happy clicks.

Me gustaria tambien dejarte pensado un poco... cuando me empeze a meter en este mundillo del Flash, he visto un sistema en un famoso Hotel de lujo, que tenian una modesta interfase en sus televisores, donde podian ver los servicios que ofrecian, algunos spots como comerciales, un raquitico navegador, e incluso los cargos que al momento llevaban a su cuenta, todo esto controlado por el tipico control de TV (o DVD) lo que me sorprendio fue de que al pulsar una tecla podias ver la TV Satelital. He checado esto y las capacidades del Flash, no he encontrado nada acerca de poder controlar un hardware de recepcion de imagenes en vivo controlado por una interfase SWF, tal vez como si fuera un reproductor de MP3 o FLV, se podra o ya nos quedo mal Adobe??
  #12 (permalink)  
Antiguo 10/01/2008, 01:28
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Re: Problema con decimales

Primero, lo de la máscara. Es muy fácil, creas un mc que será la máscara y para aplicarlo a otro mc:
Código:
mc.setMask(mascara);
Respecto a lo segundo, uf, ni idea, amigo. Ni me lo había planteado ni he oído nada al respecto, pero quién sabe...

Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
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 15:32.