Flash: Imágenes rotativas en AS3

Etiquetas: setTimeout removeChild addEventListener URLRequest Loader

Flash: Imágenes rotativas en AS3

Esta clase, explica paso a paso como hacer en AS3 una carga de imágenes que van rotando cada cierto tiempo. Para ello se almacenan las urls en una matriz y se van cargando los archivos cada cierto tiempo.

mas

Cambiar el color de un MovieClip con Actionscript 3.0

Etiquetas: ColorPicker ColorTransform ColorPickerEvent

Cambiar el color de un MovieClip con Actionscript 3.0

La clase ColorTransform permite ajustar el color de los objetos de visualización. Este ejemplo muestra como cambiar el color de un MovieClip utilizando el componente ColorPicker de Flash.

mas

Papervision GreatWhite: Tipos de Shader

Etiquetas: PointLight3D GouraudShader FlatShader CellShader PhongShader ShadedMaterial

Papervision GreatWhite: Tipos de Shader

Una de las novedades de Papervision GreatWhite son los ShadedMaterial.

Para utilizarlos basta con seguir los siguientes pasos:

mas

Galeria de Flickr con Papervision GreatWhite, V2

Etiquetas: API Flickr Papervision GreatWhite

Galeria de Flickr con Papervision GreatWhite, V2

He "mejorado" la galeria de imágenes en 3D, añadiendo un menú lateral con todos los albums de usuario (en este caso Lola) y permitiendo la carga de las imágenes originales haciendo click en cada cubo.

mas

Carga de sonidos y visualización del espectro en Actionscript 3.0

Etiquetas: SoundChannel Sound ByteArray computeSpectrum

Carga de sonidos y visualización del espectro en Actionscript 3.0

Con AS3 podemos visualizar el espectro de sonido de un audio. Con unas pocas lineas de código, podemos hacer cosas impensables con anteriores versiones del lenguaje. Este es el resumen del código:

-Creo un objeto de tipo Sound() y cargo en él archivo mp3:

  1.  
  2. sonido = new Sound();
  3. var request:URLRequest = new URLRequest(url);
  4. sonido.addEventListener(Event.COMPLETE, sonidoCargado);
  5. sonido.load(request);
  6.  

-Programo la carga para que cuando termine se ejecute la función sonidoCargado. En esta función reproduzco el sonido (canal = sonido.play(0,1000);) y añado un evento para que se pinte el espectro de sonido (addEventListener(Event.ENTER_FRAME,mover)).

-La función mover es la encargada de "Pintar" el espectro. El espectro se almacena en la variable arrayMixer en forma de matriz de bits. Los elementos de esta matriz pueden ser 1 o 0. Resumiendo, podemos decir que cuantos más 1 haya, más "alto suena el sonido". Recorro la matriz y sumo todos esos 1, para ver como de grande tengo que pintar la barra de volumen. Cuando tengo ese valor lo almaceno en la matriz de volúmenes. Depués de esto, recorro toda la matriz de volúmenes y pinto una barra para cada valor almacenado.

El código completo:

  1.  
  2. package {
  3. import flash.display.*;
  4. import flash.events.*;
  5. import flash.media.*;
  6. import flash.utils.ByteArray;
  7. import flash.net.*;
  8. public class CargadorSonidos extends Sprite {
  9. var url:String = "sonido.mp3";
  10. var canal:SoundChannel;
  11. var sonido:Sound;
  12. var fourierTransform:Boolean = false;
  13. var arrayMixer:ByteArray = new ByteArray();
  14. var volumenes:Array = new Array();
  15. public function CargadorSonidos():void {
  16. cargarSonido();
  17. }
  18. function cargarSonido():void {
  19. SoundMixer.stopAll();
  20. sonido = new Sound();
  21. var request:URLRequest = new URLRequest(url);
  22. sonido.addEventListener(Event.COMPLETE, sonidoCargado);
  23. sonido.load(request);
  24. }
  25. function sonidoCargado(event:Event):void {
  26. canal = sonido.play(0,1000);
  27. addEventListener(Event.ENTER_FRAME,mover);
  28. }
  29. function mover(e:Event):void {
  30. SoundMixer.computeSpectrum(arrayMixer, true);
  31. var c = 0;
  32. for (var i = 0; i < arrayMixer.length; i++) {
  33. c += arrayMixer[i];
  34. }
  35. volumenes.push(c);
  36. if (volumenes.length > 400) {
  37. volumenes.splice(0,1);
  38. }
  39. graphics.clear();
  40. graphics.lineStyle(1, 0x000000);
  41. graphics.beginFill(0x000000);
  42. for (var j = 0; j < volumenes.length; j++) {
  43. graphics.lineTo(j,100+volumenes[j]/1200);
  44. graphics.lineTo(j,100-volumenes[j]/1200);
  45. graphics.moveTo(j,100);
  46. }
  47. graphics.lineTo(volumenes.length,100);
  48. graphics.lineTo(0,100);
  49. }
  50. }
  51. }
  52.  

mas

Demo de navegación con cubos en Papervision GreatWhite

Etiquetas: API Flickr GreatWhite

Demo de navegación con cubos en Papervision GreatWhiteDemo de navegación con cubos en Papervision GreatWhite

Esta es una demo de navegación en 3D, y utiliza Papervision GreatWhite y la API de Flickr.

La demo, que carga las fotos de Lola, se puede ver aquí.

mas

Fichero crossdomain: Carga de archivos desde otro servidor

Etiquetas: crossdomain

Por limitaciones de seguridad, Flash player no permite cargar archivos (jpg, swf, etc..) de otros dominios, a menos que en el servidor que almacena los archivos haya un fichero que indique que el dominio que solicita la carga es de confianza. Este fichero de configuración es "crossdomain.xml", y en él se pueden indicar qué dominios queremos que puedan acceder a los archivos que se alojan en nuestro servidor.

Por ejemplo si tenemos unas fotos almacenadas en el servidor A y queremos cargarlas en nuestra página hecha en Flash alojada en el servidor B, tendremos que poner en A un fichero crossdomain que indique que el servidor A es de confianza. Un ejemplo de fichero crossdomain seria:

  1.  
  2. <cross-domain-policy>
  3. <allow-access-from domain="www.esedeerre.com"/>
  4. <allow-access-from domain="www.google.com" />
  5. </cross-domain-policy>
  6.  

En él estamos diciendo que permitimos las cargas de archivos de nuestro servidor para todas las peticiones hechas desde los dominios www.esedeerre.com y www.google.com. También podemos marcar todos los dominios como permitidos de esta forma:

  1.  
  2. <cross-domain-policy>
  3. <allow-access-from domain="*" />
  4. </cross-domain-policy>
  5.  

Un ejemplo de este tipo de fichero crossdomain, podemos verlo en los servidores de Flickr, que contienen estos archivos para permitir cargas de fotos desde otros dominios por medio de su API. Cuando Flash hace una carga de un archivo alojado en otro dominio, busca en este dominio el fichero "crossdomain.xml", y si no lo encuentra, no permite la carga del archivo.

mas

Utilizar un joystick en juegos o aplicaciones flash

Tenemos dos maneras de hacerlo:


-Utilizando Joykey. Este programa transforma los movimentos del joystick en eventos de teclado. Es decir, programamos el flash como si fueramos a usar teclas, y luego configuramos este programa para que genere los eventos de las teclas que queremos utilizar.

-Utilizando un joystick que genere eventos de teclado. Esta creo que es la mejor opción si tenemos que programar una aplicación que va a estar de cara al público y se maneja con joystick: encargar a alguna empresa de electrónica que nos construya un joystick "a medida" y se comporte como el programa necesite.

mas

Deshabilitar caché al cargar archivos dinámicamente desde Flash

Etiquetas: loadMovie movieClipLoader Loader

Si cargamos un archivo de forma dinámica en Flash (ya sea en Actionscript 2.0 por medio de loadMovie o movieClipLoader, o en Actionscript 3.0 por medio de un Loader o similar),veremos como el navegador cachea el archivo haciendo que la segunda vez y siguientes cargue "instantáneamente". Esto puede ser ventajoso en muchos casos, pero en sitios dinámicos puede ocurrir que el usuario no aprecie cambios realizados porque está viendo la versión cacheada en su navegador. También en fase de testeo es recomendable evitar la caché, para hacernos una idea de cuál es el tiempo real de carga de la web. La manera de evitar caché, es añadiendo una variable con valor aleatorio a la url del archivo que vamos a cargar, ya sea por medio de random() (Actionscript 2.0) o Math.random() (Actionscript 3.0)

mas

Creada la lista de correo de SdR

He creado un formulario de suscripción a esedeerre aquí. Cada vez que se publique un post que crea que puede ser de interés, mandaré un correo a toda la lista.

mas

Páginas: [1] [2] [3] [4] [5] [6] [7] [8] 9 [10] [11] [12] [13] [14] [15] [16]