Comunidad de diseño web y desarrollo en internet online

AS3: Ayuda con función para leer números

Citar            
MensajeEscrito el 12 Oct 2008 07:55 pm
Muy buenas a todos!

Estoy intendo hacer una función para leer números decimales. La estructura que tengo, que no quiere decir ni mucho menos que sea la mejor es la siguiente:

Código ActionScript :

var num1:Number = numeroAzar()
// devuelve número con 2 decimales

var parteEntera = Math.floor(num1)
var parteDecimal = devuelveDecimal (num1)

reproducirNum(parteEntera,false);
reproducirNum(parteDecimal,true);

La función reproducirNum que tengo es la siguiente:

Código ActionScript :

function reproducirNum (num:Number, decimal:Boolean)l{
   if (decimal){
      var sonidoComa:coma = new coma();
      var canalComa:SoundChannel = sonidoComa.play();
      [color=red]canalComa.addEventListener(Event.SOUND_COMPLETE, reproducirNum (num, false));[/color]
   } else {
      var nombreClase:String = "n_" + String (num);
      var tempoClase:Class = flash.utils.getDefinitionByName(nombreClase) as Class;
      var sonido:Object = new tempoClase;
      var channel:SoundChannel = sonido.play();
   };
}

A ver si me podéis arrojar un poco de luz.

Muchísimas gracias

Por astropajo

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Oct 2008 09:38 pm
ok, ¿qué quieres hacer? ¿qué falla en ese código?

La próxima vez usa las etiquetas de código para postear código ([as] para ActionScript)

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 13 Oct 2008 09:19 am
Muchísimas gracias por tu rápida respuesta.

Lo que quiero hacer es generar un número con 2 decimales, por ejemplo 6.78, y crear una función que te lo lea, es decir, "seis coma setenta y ocho".

Para ello, voy a tener los números en mp3, desde el 1 hasta el 99, además del mp3 de la coma.

Tenía pensado crear una función que te leyese la parte entera o la decimal, dependiendo de un Boolean.

Parte entera:

Código :

reproducirNum(parteEntera,false);


Parte decimal:

Código :

reproducirNum(parteDecimal,true); 


El problema que tenía es que no me funcionaba:

Código :

canalComa.addEventListener(Event.SOUND_COMPLETE, reproducirNum (num, false));


Ese problema ya lo he solucionado.

Me gustaría saber que os parece esa función para lo que quiero hacer.

Ahora estaba pensando que podría ser mejor una única función que leyese la parte entera y la decimal, pero no sé. Además, en números como 6.00, quiero que sólo lea "seis" y no "seis coma cero".

Muchas gracias a todos

Por astropajo

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Oct 2008 05:08 pm
Lo has intentado hacer ya haciendo un XML donde cada nodo tenga un attributo del número y otro atributo del archivo que debe leer?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Oct 2008 07:05 pm
Muchísimas gracias por contestar!

La verdad es que no lo he intentado con XML, pero no sé si eso simplificaría mi función. Con esto:

Código :

      var nombreClase:String = "n_" + String (num); 
      var tempoClase:Class = flash.utils.getDefinitionByName(nombreClase) as Class; 
      var sonido:Object = new tempoClase; 
      var channel:SoundChannel = sonido.play(); 


si crees que la función quedaría más simple o eficaz, por favor, coméntamelo.

Muchas gracias

Por astropajo

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Oct 2008 09:36 pm
Esto que has puesto es para leer sonidos de la biblioteca?
No te sería más fácil en este tipo de jercicio tener los sonidos externos en una carpeta?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Oct 2008 09:57 pm
Sí, es para leer los sonidos de la biblioteca.

El motivo hacerlo así, es que lo que estoy haciendo es una actividad de matemáticas y necesito que la reproducción de sonidos sea rápida. Me da miedo que, aunque los archivos de mp3 sean muy pequeños, que lo son, tarden en cargarse, mientras que si están dentro del swf, aunque tarde en cargarse, una vez cargado, todo funcionará según lo previsto.

Todo esto es en mi humilde opinión, no sé si estoy en lo cierto. Si no es así, estoy abierto a cualquier tipo de orientación.

Muchas gracias

Por astropajo

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Oct 2008 09:42 pm
Bueno si los deseas cargar de la biblioteca te sirve el código que has posteado siempre que la variable num la obtengas del xml.
Yo prefiero hacer un preload y después reproducir, los archivos de mp3 serán muy pequeños, lo más seguro que en mono, no tardarán ni medio segundo en cargar con un ancho de banda medio.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Oct 2008 11:03 am
Muchísimas gracias por tu ayuda.

El motivo de poner los mp3 en biblioteca es que la actividad que voy a hacer es de cálculo numérico, en la que quiero valorar la velocidad y, si tarda en cargarse el mp3, aunque sea medio segundo, no podré comparar a alguien con conexión lenta con otro con conexión rápida.

Espero se haya entendido lo que intento explicar.

Por astropajo

24 de clabLevel



 

firefox

 

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