Pixelando imágenes en Actionscript 3.0

Etiquetas: Bitmapdata threshold getPixel32 draw

Pixelando imágenes en Actionscript 3.0

Este post es una modificación de este experimento.

En el anterior recortaba una imagen en cuadrados, comprobando si contenían algún pixel transparente o no. En este divido la imagen en cuadrados, calculo el color que aparece mas veces en ese cuadrado, y creo un Shape relleno de ese color que coloco en las coordenadas del cuadrado.

Las función que calcula el color dominante es esta:

  1.  
  2. public static function obtenerColorPrincipal( source:BitmapData):Array
  3. {
  4. var n:Object = {};
  5. var a:Array = [];
  6. var p:int;
  7. var alphaValue:uint
  8.  
  9. for (var x:int = 0; x < source.width; x += 10)
  10. {
  11. for (var y:int = 0; y < source.height; y+= 10)
  12. {
  13. p = source.getPixel32(x, y);
  14. alphaValue = p >> 24 & 0xFF;
  15. if (alphaValue > 0x00) {
  16. n[p] ? n[p]++ : n[p] = 1;
  17. }
  18. }
  19. }
  20.  
  21. for (var c:String in n)
  22. {
  23. a.push ( { colour:c, count:n[c] } );
  24. }
  25.  
  26. return a.sortOn( ["count"], Array.DESCENDING );
  27. }
  28.  

mas

Realidad Aumentada y Físicas con FlarToolKit y FOAM

Etiquetas: FlarToolKit

Realidad Aumentada y  Físicas con FlarToolKit y FOAM

Esta noche me he puesto por primera vez con Realidad Aumentada (FlarToolKit) y la cosa parece bastante sencilla (por lo menos a un nivel básico de uso) .

He hecho una demo en la que controlo unos cubos sobre una superficie plana, mezclando Papervision y FOAM. De momento dejo un video tras el salto, cuando tenga una visión mas clara de la librería, haré un tutorial.

mas

Envio de email con adjuntos en AS3 y PHP

Etiquetas: FileReference FileFilter URLRequest

Este ejemplo muestra como hacer un formulario en Flash (Actionscript 3.0) con envio de adjuntos.

El esquema básico es que hacemos una subida normal con FileReference, y en el URLRequest de la subida incluimos las variables que queramos adjuntar en el formulario:

  1.  
  2. var request:URLRequest = new URLRequest(url);
  3. request.method = URLRequestMethod.POST;
  4. request.data = new URLVariables();
  5. request.data.nombre = Nombre_txt.text;
  6. request.data.destinatario = Destinatario_txt.text;
  7. subidor.upload(request);
  8.  

Estas variables las recogemos después en el PHP con el nombre que les hayamos puesto con:

  1.  
  2. $_REQUEST[nombre]
  3.  

En el php tenemos el código típico de una subida, y una vez terminada pasamos a montar el correo electrónico.

Dejo los fuentes con el fla, la clase Formulario, y el php para la subida.

El código php es una versión adaptada del que podéis encontrar en esta página

mas

Estadísticas de esedeerre en 2010

Estas son las estadísticas de usuarios de esedeerre en 2009, y su evolución respecto a 2008:

Usuario únicos: 101.676

Versiones de Flash:

Flash Player 10 ya es la versión de la mayoría de los usuarios. En las estadísticas anuales la versión está instalada en el 83% de los ordenadores, y en las de diciembre llega al 88%

Anuales:

Estadisticas Flash Player

Diciembre

Estadisticas Flash Player

Navegadores:

La mayor diferencia respecto a 2008 es la subida de Google Chrome: pasa del 2% al 7% y continúa subiendo: en diciembre llega al 10,5%. Firefox se mantiene por encima del 50%, e Internet Explorer baja en diciembre hasta el 27%.

Anuales:

Estadisticas Navegadores

Diciembre

Estadisticas Navegadores

Sistema operativo:

Estadísticas prácticamente calcadas al año pasado: 88,22% Windows, 10,26% Macintosh

estadísticas sistema operativo

Lo mas curioso de estás estadísticas, es que si miramos las versiones de windows en diciembre de 2009, obtenemos esta gráfica:

estadísticas sistema operativo

XP sigue instalado en el 65% de los ordenadores, y Windows 7 ya casi iguala a Vista, instalado solo en el 18% de los ordenadores.

Resoluciones de pantalla:

El resumen es que cada vez hay mas resoluciones distintas, y que 800x600 "desaparece" definitivamente del mapa.

estadisticas resoluciones

mas

Adobe Flash Player 10.1

Adobe Flash Player 10.1

A partir de esta semana está disponible en Adobe Labs la beta de Adobe Flash Player 10.1.

Ha sido muy comentado el soporte multitouch del player, pero a mi lo que mas "ilusión" me ha hecho ha sido el manejo de errores global, que permite centralizar el manejo de todos los errores en tiempo de ejecución.

Adobe Flash Player 10.1

mas

Bug en la función updateBitmap() de MovieMaterial en Papervision3D 2.0 GreatWhite

Etiquetas: updateBitmap() drawBipmap()

Esta semana me he vuelto a topar con este bug de la clase MovieMaterial en Papervision 2.0 GreatWhite.

Si utilizamos un MovieClip como material, utilizando MovieMaterial, y este vá a cambiar en algún momento, pero no queremos utilizar el atribute animated para conservar recursos, podemos llamar a la funcion updateBitmap() para actualizar el material solo cuando sea necesario. El problema es que en esta versión de Papervision, la función updateBitmap() definida en MaterialObject3D, está vacía (literalmente).

Para solucionar este inconveniente, podemos llamar a la función drawBitmap de la clase MovieMaterial. Por ejemplo:

MovieMaterial(plano.material).drawBitmap()

mas

Error de seguridad al utilizar computeSpectrum

Etiquetas: computeSpectrum

Me topé con este error hace varios meses por casualidad. Siempre suelo tener abierto el player de Radio3, y notaba que cuando veía páginas Flash con algún ecualizador de sonido (utilizando computeSpectrum), me salía un error de seguridad en el debugger y no funcionaba la web en Flash.

No le dí mucha importancia hasta que me tocó programar un player para una web y tuve que utilizar computeSpectrum. Lo comenté en la lista de ASNativos, y Cay pasó este enlace:

http://bugs.adobe.com/jira/browse/FP-147

Resulta que es un error sin solución hasta el momento, asi que si alguna vez hacéis una aplicación que utilice computeSpectrum, tenedlo en cuenta: no funciona si tienes abierto un player de audio o video (youtube, vimeo...) en otra ventana.

mas

Reconocer caras con Marilena (Actionscript 3.0)

Reconocer caras con Marilena (Actionscript 3.0)

Marilena es una librería de reconocimiento de formas, portada de OpenCV a Actionscript 3 por Ohtsuka Masakazu.

En el ejemplo que muestro podéis ver como funciona esta librería, aprovechando también las mejoras que hizo Mario Klingemann ( Quasimondo) sobre la misma.

Dejo también los fuentes, que incluyen las clases de Masakazu y Quasimondo.

mas

Publicado el primer libro de Papervision

Publicado el primer libro de Papervision

La editorial Packt acaba de publicar el primer libro de Papervision3D.

Está escrito por Jeff Winder y Paul Tondeur, y según palabras textuales de Carlos Ulloa, está "de puta madre".

Los contenidos son:

Preface Chapter 1: Setting Up
Chapter 2: Building Your First Application
Chapter 3: Primitives
Chapter 4: Materials
Chapter 5: Cameras
Chapter 6: Moving Things Around
Chapter 7: Shading
Chapter 8: External Models
Chapter 9: Z-Sorting
Chapter 10: Particles
Chapter 11: Filters and Effects
Chapter 12: 3D Vector Drawing and Text
Chapter 13: Optimizing Performance
Index

Se puede comprar aquí.

mas

Actionscript 3.0: Poner el foco sobre un campo de texto.

Etiquetas: focus

La manera de poner el foco sobre un campo de texto en Actionscript 3.0 es incluso más sencilla que en Actionscript 2.0.

Basta con utilizar la propiedad stage.focus para poner el foco sobre el campo que queramos. Por ejemplo:

  1.  
  2. stage.focus = Campo_txt;
  3.  

mas

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