Tag Archives: Flex

Componente de Carrusel para Flex

Este es un excelente componente, muy gráfico y sencillo de usar (a pesar de que no tiene documentación, tan solo algunos ejemplos).

Está basado en PaperVision que realmente se me hace un proyecto sorprendente, ya que permite 3D en Flash realmente optimizado.
Ha sido tanta la necesidad de 3D que en ASTRO (Flash Player 10) se incluirá el manejo 3D de objetos así como muchas otras mejoras.

Por cierto que, aunque comenta que no ha incluido las fuentes del cover de iTunes por no haberlas limpiado, no es tan dificil crear algo similar; aunque me dio la sensación de que su ejemplo crea de antemano todas las etiquetas y solamente las posiciona, porque he visto un “pestañeo” al cambiar los datos, aunque también he visto ese pestañeo en una aplicación que utilice este componente pero fue porque utilizaba otro efecto al mismo tiempo que el efecto de movimiento.

Liga:
http://dougmccune.com/blog/2007/11/19/flex-coverflow-performance-improvement-flex-carousel-component-and-vertical-coverflow/

Manejo de Sonido en Flex

En Flex podemos manejar el audio de dos formas; obteniendo información acerca del espectro de sonido o cambiando la configuración. En este tutorial veremos estas dos formas.

Alterando el sonido

Flex (de hecho Flash) tiene métodos muy básicos para alterar el sonido, solamente podemos alterar el volumen y el Pan (desplazamiento entre bocinas derecha e izquierda). No existen métodos para por ejemplo aplicarle un filtro y cambiar la equalización del sonido en tiempo real. Para cambiar las propiedades del sonido debemos hacerlo mediante los componentes que tengan como propiedad soundTransform que es un objeto de tipo SoundTransform, aunque podemos utilizar las propiedades de este objeto para cambiar el volumen o panning no se observará ningún cambio puesto que hay que asignar un nuevo SoundTranform de la siguiente manera:

var st:SoundTransform = new SoundTransform(volumen, pan);
mi_componente.soundTransform = st;

De esta manera se observará el cambio; el parámetro volumen es un número entre 0 (silencio total) y 1 (volumen total), mientras que pan es un número entre -1 (volumen solamente en bocinas izquierdas) y 1 (volumen solamente en bocinas derechas) siendo 0 el equilibro entre las dos bocinas (y por defecto). Los componentes que utilizamos para sonido son:

  • VideoDisplay (para reproducir Video de Flash)
  • SoundChannel (cuando se reproduce Audio)
  • NetStream (cuando se reproduce directamente audio/video sin utilizar lo anterior)

En el ejemplo la primera parte tiene que ver con sliders que cambian automáticamente el SoundTransform del clip de sonido (SoundChannel) tanto en Volumen como en Pan.

Obtener información de Sonido

Flex nos permite obtener información del Audio que se está reproduciendo actualmente; el problema es que como no está asociado a un componente si tenemos en otra pestaña del navegador el mismo documento de Flash (u otro al que tengamos permiso) aunque no estemos reproduciendo nada en nuestro primer documento si mostrará información del otro documento ya que toma la información del entorno; también si reducimos el volumen mostrará un escalamiento en los valores proporcional al volumen, igual sucede con el pan donde veremos como desaparecen valores de las regiones. Para obtener la información del sonido es muy sencillo, utilizamos la función estática: SoundMixer.computeSpectrum Esta función acepta tres parámetros, el primero que es el único requerido es un ByteArray donde almacenará los valores; estos serán 512 valores flotantes donde los primeros 256 valores corresponden a la bocina izquierda y los restantes a la bocina derecha. El segundo parámetro es si utilizar una transformada de Fourier a los valores; el valor por defecto es falso, en esta forma tendremos la onda correspondiente al sonido y los valores irán de -1 a 1. Si asignamos el valor verdadero entonces obtendremos valores correspondientes al espectro de frecuencias, donde los valores bajos están a la derecha y los altos a la izquierda (bajos y agudos respectivamente); en este caso los valores irán de 0.0 a 2.0. El tercer parámetro nos permite cambiar el sonido a un diferente sampleo, por defecto es de 44.1Khz, si se asigna 1 entonces se reduce a la mitad (22.05Khz) y así sucesivamente. Debido a restricciones de seguridad no siempre podremos acceder a información del sonido, aunque la clase estática SoundMixer tiene un método llamado: areSoundsInaccessible que nos permite saber si podemos acceder a información del sonido no siempre funciona de manera adecuada; por lo que es mejor al momento de llamar a computeSpectrum incluirlo en un catch con SecurityError para aquellos casos donde no podamos acceder a la información. En el ejemplo tenemos dos tipos de visualización, la Normal y la de Fourier; el sistema básicamente grafica en cada componente la información del sonido actual en dos componentes: VisualizacionNormal y VisualizacionFourier.

Ejemplo

Descargar Código:
FangitSoundHandling.zip