Controlar sonido conControlar sonido con
ActionScriptActionScript
Unidad 9Unidad 9
ObjetivosObjetivos
 Crear instancias de las clases Sound,Crear instancias de las clases Sound,
SoundChannel y SoundTransf...
ObjetivosObjetivos
 Uso de un arreglo para almacenar la listaUso de un arreglo para almacenar la lista
de reproducción de...
Añadir deslizadoresAñadir deslizadores
(Sliders) al proyecto(Sliders) al proyecto
Unidad 9Unidad 9
Añadir deslizadores (Sliders) alAñadir deslizadores (Sliders) al
proyectoproyecto
 Los deslizadores son componentes deLos...
Añadir deslizadores (Sliders) alAñadir deslizadores (Sliders) al
proyectoproyecto
 Los parámetrosLos parámetros maximumma...
Las clases Sound,Las clases Sound,
SoundChannel ySoundChannel y
SoundTransformSoundTransform
Unidad 9Unidad 9
Las clases de sonidoLas clases de sonido
 Los sonidos en AS3.0 se dividen en 4 clases:Los sonidos en AS3.0 se dividen en ...
Las clases de sonidoLas clases de sonido
 Los pasos para cargar y ejecutar un sonido deLos pasos para cargar y ejecutar u...
Las clases de sonidoLas clases de sonido
 Nota: Como cortesía al usuario, siempre hayNota: Como cortesía al usuario, siem...
Desplegar los títulosDesplegar los títulos
mediante un ciclomediante un ciclo
Unidad 9Unidad 9
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Para poder desplegar los títulos de lasPar...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 En este caso, deseamos introducir a la caj...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Podríamos repetir esta sentencia paraPodrí...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Ahora suponga que tiene 100 botones. LaAho...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Otro punto fundamental es hacerOtro punto ...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Para ello hay que evaluar en formaPara ell...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Finalmente el ciclo quedará de laFinalment...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Para solucionar este problema, debemosPara...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Para cambiar la precedencia de laPara camb...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 El resultado es que las canciones seEl res...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Por ejemplo:Por ejemplo:
var cadena:String...
Desplegar los títulos mediante unDesplegar los títulos mediante un
ciclociclo
 Por último de esta sección, es una buenaPo...
Programar los botones paraProgramar los botones para
seleccionar una canciónseleccionar una canción
Unidad 9Unidad 9
Programar los botones paraProgramar los botones para
seleccionar una canciónseleccionar una canción
 Para cada uno de los...
Programar los botones paraProgramar los botones para
seleccionar una canciónseleccionar una canción
 Para seleccionar cad...
Programar los botones paraProgramar los botones para
seleccionar una canciónseleccionar una canción
 Todas las sentencias...
Programar los botones paraProgramar los botones para
seleccionar una canciónseleccionar una canción
 Una práctica común e...
Programar los botones paraProgramar los botones para
seleccionar una canciónseleccionar una canción
 Para ello, necesitam...
Programar los botones paraProgramar los botones para
seleccionar una canciónseleccionar una canción
 Para cargar un archi...
Controlar la visibilidad delControlar la visibilidad del
volumen y del balance devolumen y del balance de
los sonidoslos s...
Controlar la visibilidad del volumenControlar la visibilidad del volumen
y del balance de los sonidosy del balance de los ...
Controlar la visibilidad del volumenControlar la visibilidad del volumen
y del balance de los sonidosy del balance de los ...
Añadir unAñadir un listenerlistener parapara
detectar las etiquetas de losdetectar las etiquetas de los
archivo MP3sarchiv...
Añadir unAñadir un listenerlistener para detectar laspara detectar las
etiquetas de los archivo MP3setiquetas de los archi...
Añadir unAñadir un listenerlistener para detectar laspara detectar las
etiquetas de los archivo MP3setiquetas de los archi...
Añadir unAñadir un listenerlistener para detectar laspara detectar las
etiquetas de los archivo MP3setiquetas de los archi...
Añadir un objeto deAñadir un objeto de
formateo de textoformateo de texto
Unidad 9Unidad 9
Añadir un objeto de formateo deAñadir un objeto de formateo de
textotexto
 Para poder darle formato a un texto, sePara po...
Añadir los controles aAñadir los controles a
los deslizadoreslos deslizadores
Unidad 9Unidad 9
Añadir los controles a losAñadir los controles a los
deslizadoresdeslizadores
 Por último activaremos los deslizadoresPor...
Preguntas de revisiónPreguntas de revisión
Unidad 9Unidad 9
Preguntas de revisiónPreguntas de revisión
 ¿Con cuál de las tres clases de ActionScript¿Con cuál de las tres clases de A...
Preguntas de revisiónPreguntas de revisión
 ¿Cuál es el método para añadir texto a¿Cuál es el método para añadir texto a
...
Upcoming SlideShare
Loading in …5
×

As3 unidad 9 controlar sonido con action script

1,128 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

As3 unidad 9 controlar sonido con action script

  1. 1. Controlar sonido conControlar sonido con ActionScriptActionScript Unidad 9Unidad 9
  2. 2. ObjetivosObjetivos  Crear instancias de las clases Sound,Crear instancias de las clases Sound, SoundChannel y SoundTransform.SoundChannel y SoundTransform.  Control de la carga y ejecución de unControl de la carga y ejecución de un archivo MP3 externo.archivo MP3 externo.  Uso de la clase SoundTransform paraUso de la clase SoundTransform para controlar el volumen y balance (paneo) decontrolar el volumen y balance (paneo) de sonidossonidos  Uso de un componente deslizador (Slider)Uso de un componente deslizador (Slider) para controlar los valores de la clasepara controlar los valores de la clase SoundTransform.SoundTransform.
  3. 3. ObjetivosObjetivos  Uso de un arreglo para almacenar la listaUso de un arreglo para almacenar la lista de reproducción de los archivo MP3s.de reproducción de los archivo MP3s.  Uso de los métodos de la clase TextFieldUso de los métodos de la clase TextField para añadir y remover los caracteres depara añadir y remover los caracteres de una variable cadena.una variable cadena.  Uso de las etiquetas ID3 de los archivosUso de las etiquetas ID3 de los archivos MP3s para accesar información sobre elMP3s para accesar información sobre el archivoarchivo
  4. 4. Añadir deslizadoresAñadir deslizadores (Sliders) al proyecto(Sliders) al proyecto Unidad 9Unidad 9
  5. 5. Añadir deslizadores (Sliders) alAñadir deslizadores (Sliders) al proyectoproyecto  Los deslizadores son componentes deLos deslizadores son componentes de interfase de usuario (UI) que nosinterfase de usuario (UI) que nos regresarán un número dentro de unregresarán un número dentro de un rango.rango.  El parámetroEl parámetro snapIntervalsnapInterval nos regresa losnos regresa los valores en el rango que le indiquemos.valores en el rango que le indiquemos.  El parámetroEl parámetro tickIntervaltickInterval determina lasdetermina las líneas que se dibujan en la parte superiorlíneas que se dibujan en la parte superior del deslizador.del deslizador.
  6. 6. Añadir deslizadores (Sliders) alAñadir deslizadores (Sliders) al proyectoproyecto  Los parámetrosLos parámetros maximummaximum yy minimumminimum determina los números máximos ydetermina los números máximos y mínimos del rago, respectivamente.mínimos del rago, respectivamente.  El valor del parámetroEl valor del parámetro valuevalue determina eldetermina el valor por omisión y por tanto, la posiciónvalor por omisión y por tanto, la posición del indicador del deslizador.del indicador del deslizador.
  7. 7. Las clases Sound,Las clases Sound, SoundChannel ySoundChannel y SoundTransformSoundTransform Unidad 9Unidad 9
  8. 8. Las clases de sonidoLas clases de sonido  Los sonidos en AS3.0 se dividen en 4 clases:Los sonidos en AS3.0 se dividen en 4 clases: – SoundSound: Sirve para cargar el archivo externo y: Sirve para cargar el archivo externo y reproducirlo.reproducirlo. – SoundChannelSoundChannel: Esta clase sirve para administrar: Esta clase sirve para administrar los canales (hasta 16) y recibe la clase para controlarlos canales (hasta 16) y recibe la clase para controlar el volumen y el balance de los mismos. Cada objetoel volumen y el balance de los mismos. Cada objeto SoundChannel es controlado individualmente.SoundChannel es controlado individualmente. – SoundTransformSoundTransform : Nos sirve para controlar el: Nos sirve para controlar el volumen y el balance (paneo) del sonido.volumen y el balance (paneo) del sonido. – SoundMixerSoundMixer: (No se ve en este ejercicio) funciona: (No se ve en este ejercicio) funciona para mezclar los sonidos de cada uno de los objetospara mezclar los sonidos de cada uno de los objetos SounChannel.SounChannel.
  9. 9. Las clases de sonidoLas clases de sonido  Los pasos para cargar y ejecutar un sonido deLos pasos para cargar y ejecutar un sonido de un archivo externo son:un archivo externo son: – Crear los objetos de sonido (Sound, SoundChannel yCrear los objetos de sonido (Sound, SoundChannel y SoundTransform).SoundTransform). – Cargar el archivo externo mediante el objeto Sound.Cargar el archivo externo mediante el objeto Sound. – Modificar los parámetros de volumen y paneo en elModificar los parámetros de volumen y paneo en el objeto SoundTransform.objeto SoundTransform. – Ejecutar el sondo desde el objeto SoundChannelEjecutar el sondo desde el objeto SoundChannel – Asociar el objeto de transformación al objetoAsociar el objeto de transformación al objeto SoundChannelSoundChannel
  10. 10. Las clases de sonidoLas clases de sonido  Nota: Como cortesía al usuario, siempre hayNota: Como cortesía al usuario, siempre hay que mantener el sonido al 50% del volumen. Sique mantener el sonido al 50% del volumen. Si lo mantiene en 100% podría resultar incómodolo mantiene en 100% podría resultar incómodo para el usuario de su aplicación.para el usuario de su aplicación.  Si programa en la línea de tiempo, no esSi programa en la línea de tiempo, no es necesario importar las clases de sonido, ya quenecesario importar las clases de sonido, ya que se encuentran en el paquete “flash”se encuentran en el paquete “flash”  Si programa OOPs, deberá importar las clases:Si programa OOPs, deberá importar las clases: import flash.media.Sound;import flash.media.Sound;
  11. 11. Desplegar los títulosDesplegar los títulos mediante un ciclomediante un ciclo Unidad 9Unidad 9
  12. 12. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Para poder desplegar los títulos de lasPara poder desplegar los títulos de las canciones en los botones, tenemos quecanciones en los botones, tenemos que acceder a los campos de texto dentro deacceder a los campos de texto dentro de cada uno de los botones.cada uno de los botones.  A esta práctica común en Flash, deA esta práctica común en Flash, de introducir un objeto dentro de otrointroducir un objeto dentro de otro (anidación) lo conocemos como(anidación) lo conocemos como ““targetingtargeting””
  13. 13. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  En este caso, deseamos introducir a la caja deEn este caso, deseamos introducir a la caja de texto “title”, que se encuentra dentro de cadatexto “title”, que se encuentra dentro de cada uno de los botones, el nombre de la canción.uno de los botones, el nombre de la canción.  Para ello podemos acceder a la caja mediante laPara ello podemos acceder a la caja mediante la siguiente instrucción:siguiente instrucción: this.song1.title.text = “NombreCancion”;this.song1.title.text = “NombreCancion”;  Observe que el proceso para acceder aObserve que el proceso para acceder a recursos en Flash, es parecido a manejarrecursos en Flash, es parecido a manejar carpetas en el sistema operativo, sólo que encarpetas en el sistema operativo, sólo que en lugar de diagonales (“/”) utilizamos puntos.lugar de diagonales (“/”) utilizamos puntos.
  14. 14. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Podríamos repetir esta sentencia paraPodríamos repetir esta sentencia para cada uno de los 6 botones de la siguientecada uno de los 6 botones de la siguiente forma:forma: this.song1.title.text = “NombreCancion1”;this.song1.title.text = “NombreCancion1”; this.song2.title.text = “NombreCancion2”;this.song2.title.text = “NombreCancion2”; this.song3.title.text = “NombreCancion3”;this.song3.title.text = “NombreCancion3”; this.song4.title.text = “NombreCancion4”;this.song4.title.text = “NombreCancion4”; this.song5.title.text = “NombreCancion5”;this.song5.title.text = “NombreCancion5”; this.song6.title.text = “NombreCancion6”;this.song6.title.text = “NombreCancion6”;
  15. 15. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Ahora suponga que tiene 100 botones. LaAhora suponga que tiene 100 botones. La forma anterior no sería práctica.forma anterior no sería práctica.  Una mejor práctica es utilizar un cicloUna mejor práctica es utilizar un ciclo forfor para llenar cada uno de los botones.para llenar cada uno de los botones.  Para ello debemos utilizar la propiedadPara ello debemos utilizar la propiedad lengthlength de la clase Array, la cual regresa elde la clase Array, la cual regresa el número de elementos de un arreglo.número de elementos de un arreglo.  Recuerde que los arreglos siempre inicianRecuerde que los arreglos siempre inician del índice 0 (cero).del índice 0 (cero).
  16. 16. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Otro punto fundamental es hacerOtro punto fundamental es hacer referencia a los objetos en formareferencia a los objetos en forma dinámica.dinámica.  Si coloca una cadena como referencia,Si coloca una cadena como referencia, ActionScript le mandará un mensaje deActionScript le mandará un mensaje de error:error: ““song”+i = songList[i];song”+i = songList[i];
  17. 17. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Para ello hay que evaluar en formaPara ello hay que evaluar en forma dinámica la cadena o variable condinámica la cadena o variable con corchetes, por ejemplo:corchetes, por ejemplo: this[“song”+i].title.text = songList[i];this[“song”+i].title.text = songList[i];  Esta expresión la toma el compilador y laEsta expresión la toma el compilador y la interpreta como (que es lo queinterpreta como (que es lo que buscamos):buscamos): song1.title.text = songList[i];song1.title.text = songList[i];
  18. 18. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Finalmente el ciclo quedará de laFinalmente el ciclo quedará de la siguiente forma:siguiente forma: for(var i=0; i<songList.length; i++){for(var i=0; i<songList.length; i++){ this[“song”+i].title.text = songList[i];this[“song”+i].title.text = songList[i]; }}  En el ejemplo anterior, se generaría elEn el ejemplo anterior, se generaría el objetoobjeto song0song0, el cual no existe y el, el cual no existe y el compilador nos enviaría un mensaje decompilador nos enviaría un mensaje de error.error.
  19. 19. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Para solucionar este problema, debemosPara solucionar este problema, debemos sumarle 1 (uno) al índicesumarle 1 (uno) al índice ii..  Si lo hiciéramos directamente, noSi lo hiciéramos directamente, no conseguiríamos lo que deseamos:conseguiríamos lo que deseamos: trace(“song”+i+1); // song01trace(“song”+i+1); // song01  Para ello debemos dePara ello debemos de agruparagrupar la suma parala suma para cambiar lacambiar la precedenciaprecedencia..  Los paréntesis nos servirán para cambiar laLos paréntesis nos servirán para cambiar la precedencia, es decir, el orden en que seprecedencia, es decir, el orden en que se efectúan las operaciones.efectúan las operaciones.
  20. 20. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Para cambiar la precedencia de laPara cambiar la precedencia de la expresión anterior, se podría escribirexpresión anterior, se podría escribir (suponiendo que i=0):(suponiendo que i=0): trace(“song”+(i+1)); //song1trace(“song”+(i+1)); //song1  Las instrucciones para desplegar losLas instrucciones para desplegar los títulos de las canciones en los botonestítulos de las canciones en los botones quedaría de la siguiente forma:quedaría de la siguiente forma: for(var i=0; i<songList.length; i++){for(var i=0; i<songList.length; i++){ this[“song”+(i+1)].title.text = songList[i];this[“song”+(i+1)].title.text = songList[i]; }}
  21. 21. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  El resultado es que las canciones seEl resultado es que las canciones se despliegan con el nombre del archivodespliegan con el nombre del archivo másmás la extensión mp3.la extensión mp3.  Para quitar la extensión de los botones laPara quitar la extensión de los botones la eliminaremos con el métodoeliminaremos con el método replace()replace() (nuevo en AS3.0).(nuevo en AS3.0).  El métodoEl método replacereplace cambia busca unacambia busca una subcadena y si la encuentra, la cambiasubcadena y si la encuentra, la cambia por otra.por otra.
  22. 22. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Por ejemplo:Por ejemplo: var cadena:String = “foto.jpg”;var cadena:String = “foto.jpg”; cadena = cadena.replace(“jpg”, “gif”);cadena = cadena.replace(“jpg”, “gif”); trace(cadena); //foto.giftrace(cadena); //foto.gif  Si desea eliminar una subcadena,Si desea eliminar una subcadena, sustitúyala por una cadena vacía:sustitúyala por una cadena vacía: var cadena:String = “foto.jpg”;var cadena:String = “foto.jpg”; cadena = cadena.replace(“.jpg”, “”);cadena = cadena.replace(“.jpg”, “”); trace(cadena); //fototrace(cadena); //foto
  23. 23. Desplegar los títulos mediante unDesplegar los títulos mediante un ciclociclo  Por último de esta sección, es una buenaPor último de esta sección, es una buena práctica quitar de las manos del usuariopráctica quitar de las manos del usuario todo aquello que pudiera causar algúntodo aquello que pudiera causar algún problema si aún no esta listo, por lo queproblema si aún no esta listo, por lo que quitaremos la visibilidad de losquitaremos la visibilidad de los deslizadores hasta que el usuario hayadeslizadores hasta que el usuario haya seleccionado una canción:seleccionado una canción: panSlide.visible = false;panSlide.visible = false; volSlide.visible = false;volSlide.visible = false;
  24. 24. Programar los botones paraProgramar los botones para seleccionar una canciónseleccionar una canción Unidad 9Unidad 9
  25. 25. Programar los botones paraProgramar los botones para seleccionar una canciónseleccionar una canción  Para cada uno de los botones, debemos crearPara cada uno de los botones, debemos crear un detector de eventos que lance la canciónun detector de eventos que lance la canción seleccionada.seleccionada.  Lo anterior lo podemos hacer de forma dinámicaLo anterior lo podemos hacer de forma dinámica o escribir uno escribir un listenerlistener para cada uno.para cada uno.  Una ves realizada la selección, debemosUna ves realizada la selección, debemos determinar cuál canción fue seleccionada.determinar cuál canción fue seleccionada.  Esa información la tendremos en elEsa información la tendremos en el eventObjecteventObject,, en la propiedaden la propiedad currentTargetcurrentTarget..name.name.
  26. 26. Programar los botones paraProgramar los botones para seleccionar una canciónseleccionar una canción  Para seleccionar cada una de las cancionesPara seleccionar cada una de las canciones podemos utilizar 6 estructuras condicionespodemos utilizar 6 estructuras condiciones if()if(), u, u optar por una estructuraoptar por una estructura switch()switch()..  Como se vio en el capítulo 8, p165, la estructuraComo se vio en el capítulo 8, p165, la estructura switch() crea una estructura ramificada paraswitch() crea una estructura ramificada para sentencias de ActionScript.sentencias de ActionScript.  Al igual que la sentencia if, la sentenciaAl igual que la sentencia if, la sentencia switchswitch prueba una condición y ejecuta sentencias si laprueba una condición y ejecuta sentencias si la condición devuelve un valorcondición devuelve un valor truetrue..
  27. 27. Programar los botones paraProgramar los botones para seleccionar una canciónseleccionar una canción  Todas las sentenciasTodas las sentencias switchswitch deberíandeberían incluir un caso predeterminado.incluir un caso predeterminado.  El caso predeterminado debería incluirEl caso predeterminado debería incluir una sentenciauna sentencia breakbreak para evitar un errorpara evitar un error de paso al siguiente caso si se añadede paso al siguiente caso si se añade posteriormente otro caso. Cuando se pasaposteriormente otro caso. Cuando se pasa al siguiente caso, no se incluye unaal siguiente caso, no se incluye una sentenciasentencia breakbreak..
  28. 28. Programar los botones paraProgramar los botones para seleccionar una canciónseleccionar una canción  Una práctica común en la programaciónUna práctica común en la programación orientada a objetos (oop) es determinar siorientada a objetos (oop) es determinar si un objeto existe o no, pues el volverlo aun objeto existe o no, pues el volverlo a crear nos marcaría un mensaje de error.crear nos marcaría un mensaje de error.  En este caso, necesitamos verificar si elEn este caso, necesitamos verificar si el objeto existe para detener la canciónobjeto existe para detener la canción previa.previa.  Los objetos que aún no están definidos,Los objetos que aún no están definidos, tienen un valor predeterminado detienen un valor predeterminado de nullnull..
  29. 29. Programar los botones paraProgramar los botones para seleccionar una canciónseleccionar una canción  Para ello, necesitamos determinar si elPara ello, necesitamos determinar si el objeto existe antes de detener el sonido.objeto existe antes de detener el sonido.  Si no existe y lo queremos detener, elSi no existe y lo queremos detener, el compilador nos enviará un mensaje decompilador nos enviará un mensaje de error. La sentencia para ello es:error. La sentencia para ello es: if(snd != null){if(snd != null){ channel.stop();channel.stop(); }}
  30. 30. Programar los botones paraProgramar los botones para seleccionar una canciónseleccionar una canción  Para cargar un archivo externoPara cargar un archivo externo necesitamos crear un objeto URLRequest.necesitamos crear un objeto URLRequest.  En esta rutina crearemos las instancias deEn esta rutina crearemos las instancias de los objetos y ejecutaremos el sonido:los objetos y ejecutaremos el sonido: channel = snd.play();channel = snd.play();  Asignamos el objeto de transformaciónAsignamos el objeto de transformación para manejar volumen y sonido:para manejar volumen y sonido: channel.soundTransform = trans;channel.soundTransform = trans;
  31. 31. Controlar la visibilidad delControlar la visibilidad del volumen y del balance devolumen y del balance de los sonidoslos sonidos Unidad 9Unidad 9
  32. 32. Controlar la visibilidad del volumenControlar la visibilidad del volumen y del balance de los sonidosy del balance de los sonidos  Una ves que el usuario ha seleccionado elUna ves que el usuario ha seleccionado el botón, hacemos visibles los deslizadoresbotón, hacemos visibles los deslizadores cambiando la propiedadcambiando la propiedad visiblevisible aa verdadero.verdadero.  También desplegaremos el valor delTambién desplegaremos el valor del paneo y del volumen, para ellopaneo y del volumen, para ello multiplicaremos la fracción por 100.multiplicaremos la fracción por 100.
  33. 33. Controlar la visibilidad del volumenControlar la visibilidad del volumen y del balance de los sonidosy del balance de los sonidos  Para redondear los decimales, podemosPara redondear los decimales, podemos utilizar la función int() o los métodosutilizar la función int() o los métodos Math.round() (redondea de .5 paraMath.round() (redondea de .5 para arriba) , Math.floor() (trunca siemprearriba) , Math.floor() (trunca siempre abajo) o Math.ceil() (Redondea siempreabajo) o Math.ceil() (Redondea siempre para arriba).para arriba).
  34. 34. Añadir unAñadir un listenerlistener parapara detectar las etiquetas de losdetectar las etiquetas de los archivo MP3sarchivo MP3s Unidad 9Unidad 9
  35. 35. Añadir unAñadir un listenerlistener para detectar laspara detectar las etiquetas de los archivo MP3setiquetas de los archivo MP3s  Los archivos MP3 pueden ser codificadosLos archivos MP3 pueden ser codificados con etiquetas (cadenas) que contengancon etiquetas (cadenas) que contengan información sobre sus contenidos.información sobre sus contenidos.  El formato de etiquetas MP3 que aceptaEl formato de etiquetas MP3 que acepta Flash es el ID3.Flash es el ID3.  Por ejemplo, un archivo MP3 puedePor ejemplo, un archivo MP3 puede contener el nombre de la canción, sucontener el nombre de la canción, su autor, el nombre del album, el número deautor, el nombre del album, el número de pista, etc.pista, etc.
  36. 36. Añadir unAñadir un listenerlistener para detectar laspara detectar las etiquetas de los archivo MP3setiquetas de los archivo MP3s  Flash puede detectar si el archivo deFlash puede detectar si el archivo de sonido tiene dichas etiquetas, y envía unsonido tiene dichas etiquetas, y envía un evento si es el caso.evento si es el caso.  Podemos verificar si las etiquetas sePodemos verificar si las etiquetas se encuentran vacías o contienenencuentran vacías o contienen información por medio del valorinformación por medio del valor nullnull..  Vaciaremos la información en la caja deVaciaremos la información en la caja de textotexto infoinfo..
  37. 37. Añadir unAñadir un listenerlistener para detectar laspara detectar las etiquetas de los archivo MP3setiquetas de los archivo MP3s  Para añadir texto a una cadena que yaPara añadir texto a una cadena que ya existe, debemos utilizar el métodoexiste, debemos utilizar el método appendText(), exclusivo de AS 3.0.appendText(), exclusivo de AS 3.0.
  38. 38. Añadir un objeto deAñadir un objeto de formateo de textoformateo de texto Unidad 9Unidad 9
  39. 39. Añadir un objeto de formateo deAñadir un objeto de formateo de textotexto  Para poder darle formato a un texto, sePara poder darle formato a un texto, se puede crear el objeto de la clasepuede crear el objeto de la clase TextFormat.TextFormat.  Dentro de este, se puede darle un valor alDentro de este, se puede darle un valor al parámetroparámetro urlurl para hacer un hipertexto.para hacer un hipertexto.
  40. 40. Añadir los controles aAñadir los controles a los deslizadoreslos deslizadores Unidad 9Unidad 9
  41. 41. Añadir los controles a losAñadir los controles a los deslizadoresdeslizadores  Por último activaremos los deslizadoresPor último activaremos los deslizadores por medio de detectores de eventospor medio de detectores de eventos (listeners).(listeners).  El evento CHANGE se encuentra en laEl evento CHANGE se encuentra en la clase SliderEvent, la cual fue importada alclase SliderEvent, la cual fue importada al inicio del ejercicio.inicio del ejercicio.  Los nuevos datos los cargaremos en elLos nuevos datos los cargaremos en el objeto de transformación y lo asignaremosobjeto de transformación y lo asignaremos al canal de sonido (SoundChannel).al canal de sonido (SoundChannel).
  42. 42. Preguntas de revisiónPreguntas de revisión Unidad 9Unidad 9
  43. 43. Preguntas de revisiónPreguntas de revisión  ¿Con cuál de las tres clases de ActionScript¿Con cuál de las tres clases de ActionScript usted puede cargar, ejecutar y controlar unusted puede cargar, ejecutar y controlar un archivo externo de sonido?archivo externo de sonido?  ¿Cuáles son las dos propiedades de un¿Cuáles son las dos propiedades de un archivo de sonido que usted puede controlararchivo de sonido que usted puede controlar con la clasecon la clase SoundTransformSoundTransform??  ¿Cuál es el método de la clase¿Cuál es el método de la clase TextFieldTextField queque sirve para remplazar texto en una cadena?sirve para remplazar texto en una cadena?
  44. 44. Preguntas de revisiónPreguntas de revisión  ¿Cuál es el método para añadir texto a¿Cuál es el método para añadir texto a una cadena ya existente?una cadena ya existente?  ¿Cuál es el evento de la clase¿Cuál es el evento de la clase SoundSound que responde cuando se detectanque responde cuando se detectan etiquetas ID3 de un archivo de sonidoetiquetas ID3 de un archivo de sonido tipotipo MP3sMP3s??

×