Librería AS3 para el procesamiento de imágenes

Pues me animo a volver a escribir para acercaros en esta ocasión una librería en AS3 para el trabajo con imágenes, en este caso unas clases que nos permitirán trabajar con más de 50 filtros que pueden arrojar resultados tan interesantes como los que nos muestra el autor:

Para aprender a usarla nada mejor que los ficheros para descargar y la documentación bien a mano.

De todas formas una buena explicación, aunque en inglés, la encontráis en la página original donde se detalla la librería.

#013 Flash [Q] Tips: swfobject y respeta los estándares con flash

Este tip es un poco doble, en realidad el objetivo principal es el de lograr crear código para un objeto flash que valide correctamente los estándares correspondientes, y de paso hablaros de un imprescindible en todos aquellos que trabajamos con flash como es swfobject.

La manera “tradicional” de generar un HTML con un flash incrustado, y que incluso es la que se mantiene en la versión CS4 de la suite de adobe es la siguiente:

Seguir leyendo…

#012 ActionScript [Q] Tips: precargas AS3 en Internet Explorer

Imagino que unos cuantos de vosotros habéis topado previamente con el bug que se da en Internet Explorer cuando hacemos una precarga empleando los eventos Event.COMPLETE y ProgressEvent.PROGRESS de AS3. El bug en cuestión aparece cuando tenemos una película cacheada y volvemos a ella, para reproducirlo solamente tenéis que cargar la película y una vez cargada, pulsar F5 en vuestro navegador IE, o Ctrl + F5. Cabe destacar que esto solo ocurre con la película principal, y no las que se cargan internamente en ella.

Veréis como la precarga se queda en pantalla por los siglos de los siglos, y es que no se disparan correctamente los eventos antes citados. La solución más simple para el problema, es controlar este hecho, y qué mejor manera que viendo antes de preparar los eventos, si resulta que ya tenemos cargada por completo la película.

Seguir leyendo…

#011 ActionScript [Q] Tips: controla tus eventos

Todos los que tenemos más fresco AS2 (en mi caso por Flash Lite) tenemos que esforzarnos para mantener los eventos controlados en AS3. En AS2 cuando eliminabas un elemento del escenario, o de un clip, dejaba de responder a los eventos a los que estaba suscrito, y en AS3 esto no es así. Una buena manera de poder llevar un control del estilo de AS2 (que cuando borremos un elemento de la DisplayList deje de escuchar eventos, y de que los recupere cuando deseamos es encerrar estas llamadas, las de addEventListener y removeEventListener en dos métodos y suscribir éstos a los eventos ADDED y REMOVED).

Seguir leyendo…

#010 ActionScript [Q] Tips: recorte irregular de bitmaps con suavizado

Este tip es en realidad una presentación del método copyChannel de la clase BitmapData, pero al menos lo presentamos con una utilidad práctica. Imagina que te piden recortar dinámicamente unas zonas de una imagen pero con formas complejas, e incluso con suavizado en el corte…

Se nos puede ocurrir nada más plantearlo si la forma es regular, emplear una fórmula para saber si un punto se encuentra dentro o fuera (y quedarnos solamente con los interiores), pero y si la forma no es regular? y si el corte no ha de ser brusco, sino con un equivalente al “feather” de photoshop?

Seguir leyendo…

#009 ActionScript [Q] Tips: controla tu foco en AS3

Ya sábado y sin poner el tip correspondiente… una semana complicada creedme…

En AS2 disponíamos de la clase Selection con sus métodos getFocus y setFocus que nos permitían controlar el cambio de Foco o elegir a quién queríamos dárselo, en AS3 se simplifica el proceso con la propiedad focus de stage (aplicable sobre cualquier InteractiveObject), y por otro lado tenemos la clase FocusManager para todos los componentes que implementan la IFocusManagerComponent.

Si lo que queremos es simplemente respetar un orden, podemos trabajar sobre los tabIndex de los elementos en pantalla (sean elementos normales o componentes, y que se mantiene desde AS2), de tal manera que empezando en 1 y dando sucesivos valores, tengamos el orden deseado. Con esto controlamos la transición de uno a otro mediante tabulador.

Seguir leyendo…

Continuando con HTML5

Aquí os dejo la URL de un tutorial sacado de la web de smashing magazine de un desarrollo HTML5 y CSS3. Describe paso a paso el desarrollo de una página en este nuevo lenguaje. Un buen ejemplo del uso de las nuevas etiquetas que incorpora este lenguaje, así como nuevas propiedades de CSS3. Al final del tutorial hay una relación de artículos muy interesantes relativos a HTML5 para seguir profundizando en el tema :)

#008 ActionScript [Q] Tips: sincronizar FPS

En el útlimo proyecto en el que nos hemos visto embarcados, hemos sufrido muy de cerca 2 características de flash que no son especialmente agradables: no te puedes fiar de los FPS para darle velocidad a un movieclip, y no te puedes fiar de un intervalo, Timer, o como lo quieras llamar para darle velocidad a un clip.

La física ayuda, si un coche va a 40Km/h de forma constante, y avanza recto durante 1 hora, sabes que estará 40 kilómetros desde el punto de medición. Pero en flash lo normal no es actuar así, sino que en un ENTER_FRAME o en un intervalo, le vamos incrementando la posición.
Seguir leyendo…

#007 ActionScript [Q] Tips: recibir valores por flashvars en AS3

El de esta semana es corto, pero necesario ya que es un cambio notable frente al método habitual que estaba establecido para AS2 (donde nos creaba automáticamente una variable con ese nombre en la raiz del documento). Cuando a un SWF le pasamos variables inicialmente por flashvars o por parámetros en la URL, podemos acceder a los mismos de la siguiente manera:

var valor:String = root.loaderInfo.parameters.nombreVariable;

donde nombreVariable es el nombre del parámetro que le pasamos al SWF externamente por flashvars, ya sea desde el OBJECT, EMBED, etc. Hay que tener en cuenta que como todo lo que se recibe externamente por estos métodos, son cadenas de texto a menos que les hagamos la correspondiente conversión.

Upload con FileReference y variables por GET en Mac

Utilizando el  FileReference para subir un fichero al servidor desde un Mac nos puede pasar que en nuestro código as no se dispare algún eventos asociado al FileReference, es decir el onComplete, onProgress, etc. Para este problema encontré en multitud de foros la solución que es tan fácil como que la pagina php o asp devuelva algo, es decir, bastaría en el caso de php escribir echo(“hola caracola”) o si queremos ser un poco más elegantes echo(“transerencia=OK”).

En mi caso después de aplicar esta solución los eventos seguían sin dispararse por lo que seguí buscando por Internet sin encontrar nada que me ayudara. Más tarde empecé a hacer pruebas sobre mi código dando con la solución que os pongo a continuación y espero os ahorre el tiempo que yo invertí pegándome con ello.

Seguir leyendo…