Nov17th

Tip: Minimizar el código en los constructores

Alberto AS3, Tips Read on

Flash Player, desde su versión 9, posee un compilador JIT (Just in Time), que convierte el código AS3 en bytecode en tiempo de ejecución. La primera vez que se llama a un método de una clase, Flash Player lo interpreta y lo cachea compilado. Las siguientes llamadas que se hagan a esos métodos serán más rápidas ya que el compilador no tendrá que hacer la conversión AS3->bytecode. Esto no pasa con los constructores de las clases, ya que estos son siempre interpretados. Es por esto por lo que tenemos que intentar minimizar el código en los constructores. Lo más recomendable (según mi punto de vista) es acostumbrarnos a utilizar un método init() donde meter el código de inicialización (y que será llamado desde el propio constructor). Así, aunque la mayoría de las veces la diferencia de rendimiento será imperceptible, es una buena práctica que en desarrollos muy grandes puede llegar a notarse.




Nov16th

AIR logo

Alberto AIR Read on

Bueno, parece que Adobe AIR (Adobe Integrated Runtime) ya tiene logo:

AIR logo

Como comenta Mike Chambers en su blog , este logo representa las tres tecnologías sobre las que se sustena AIR; HTML, FLASH/FLEX y PDF. En breve Adobe hará una presentación oficial, pero han preferido blogearlo antes para que la comunidad de desarrolladores sea la primera en verlo.

A mi personalmente me gusta, aunque todavía me estoy acostumbrando...




Nov2nd

Pagerank 5!

Alberto General Read on

Por fin Google reconoce mi esfuerzo y en esta última actualización de PageRank me han dado un 5. No es gran cosa, pero contando con que anteriormente tenía un 2, pues la subida no está nada mal... :)




Nov1st

Thermo

Alberto General Read on

Thermo es el codename de la nueva aplicación de Adobe con la que se pretende que diseñadores y desarrolladores trabajen todavía más cerca. Básicamente la podríamos describir como una gran herramienta de skinning para Flex (aunque seguro que será mucho más que eso). En las presentaciones de Chicago y Barcelona pudimos ver un ejemplo del gran potencial de Thermo; dado un archivo de photoshop donde había un wireframe de una aplicación de administración de discos, el ponente (ahora mismo no recuerdo quien era) convertía en componentes los assets gráficos con un par de clicks. Así por ejemplo, convirtió en dos clicks una cajita con un texto en un TextInput donde el texto tenía, mediante CSS, el estilo del original. Y algo parecido hizo "creando" de la nada una barra de scroll completamente funcional...

De nuevo parece que los esfuerzos se centran en optimizar el flujo de trabajo y permitir que desde las diferentes disciplinas de un equipo de desarrollo se ahorre tiempo y se trabaje paralelamente. Realmente, tal y como vimos en la presentación, un diseñador sin ningún conocimiento de programación podía hacer funcionar (con alguna pequeña limitación) una aplicación completa de gestión musical. Se diluye un poco más la línea que separa los desarrolladores de los diseñadores...

No hay fecha definitiva para la salida oficial de Thermo, pero seguro que nos enteramos...

Aquí algunos vídeos de la presentación de Chicago (no los he grabado yo):

- Parte I
- Parte II
- Parte III




Oct19th

MAX is over!

Alberto General Read on

Todo lo bueno tiene un final, y la MAX no iba a ser menos. Tres fantásticos días de conferencias, BOF sessions, Sneaks Peaks y hasta noche de casino. La comida muy buena (aunque un poco escasa), el nivel alto y la gente genial (un saludo a la crew de MadeInFlex! espero veros en otro flash.events.Event ;) ). Ahora sólo queda esperar el nombre de la ciudad elegida para la MAX Europe 2008 y empezar a hacer hucha (la de las Americas ya está concertada y será en San Francisco del 16 al 19 de Noviembre).

A título informativo y por si alguien quiere discutir algún tema, las conferencias a las que he asistido son:

- Flex Best practices (Joe Berkovitz, Steven Webster, Sascha Wolter y Dirk Eismann)
- Beyond the basics of Flex Builder (Waldo Smeets)
- Using Flash and Flex together (Carlos Rovira y Xavi Beumala)
- Local database access with AIR and data sync (Cristophe Coenraets)
- Building AIR applications with Flash CS3 (Grant Skinner)
- Customizing the Flex framework (Ely Greenfield)
- Design-led innovation: Creating disruptive experiences (Steven Webster)
- Optimizing AS3 performance (Cedric Tabin)
- Optimizing Flex applications (Ted Patrick)
- Practical patterns in Flex (Joe Berkovitz)
- Best practices in AS3 (Peter Elst)
- Functional & performance testing with AS3 (Andreas Grabner)
- Creating custom Flex components (Marco Casario)
- Design patterns in AS3 (Leo Schuman)
- Tips and tricks in AIR (Daniel Dura)
- Flash player internals (Lee Thomason)

Intentaré poner algún post profundizando en alguno de estos temas...




Sep16th

Sobre los eventos en AS3

Alberto Flex, AS3 Read on


Constructor de la clase Event

public function Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false)

Fases en la propagación de eventos

  • Capturing
    Se origina en el nodo stage (por ser el que está más "arriba" de todos) y va bajando por las Display Lists hasta llegar al objecto que originó el evento.
  • Targeting
    Esta fase se produce cuando el evento se procesa en el nodo destino (o target como veremos más adelante), es decir, el nodo que originó el evento.
  • Bubbling
    En este caso el evento recorre el camino inverso al de la fase de capturing. Empezando por el nodo destino, va subiendo hasta alcanzar el objeto stage.
  • Por defecto sólo se llamarán a los listeners encontrados en las fases de targeting y bubbling.

    Nota: para que podamos detectar un evento en su fase de capturing deberemos registrarlo indicando true en el parámetro useCapture del método addEventListener.

    Fases de los Eventos


    To bubble or not to bubble?

    El constructor de un evento puede recibir un parámetro boleano bubble que indica si el evento realiza las tres fases que acabamos de comentar. Por defecto su valor es false por lo que sólo se llamará a los listeners que se encuentren registrados en el target (lo que equivaldría a decir que un evento con bubbles a false sólo realiza la fase de targeting). Si el parámetro bubbles es true se realizarán las tres fases mencionadas anteriormente, por lo que se llamarán a los listeners que se encuentren en las fases de targeting y bubbling.

    La propiedad eventPhase

    La propiedad eventPhase de la clase Event nos permite saber en que fase se encuentra un evento en un momento dado. Puede tener los valores 1, 2 y 3 mapeados a las constantes EventPhase.CAPTURING_PHASE, EventPhase.AT_TARGET y EventPhase.BUBBLING_PHASE. Si por ejemplo queremos capturar un evento en el stage

    El parámetro cancelable

    El tercer parámetro que acepta el constructor de la clase Event es el de cancelable y como su nombre indica se utiliza para permitir que el evento sea detenido (o cancelado) usando los métodos stopPropagation y stopInmediatePropagation.

    Diferencia entre stopPropagation y stopImmediatePropagation

    Ambos métodos son llamados sobre la instancia de Event y previenen al evento de seguir propagándose. La única diferencia entre ambos es que, mientras que stopPropagation hará que el evento no se propague a otros niveles, stopImmediatePropagation además hará que el evento no sea recibido en el mismo nivel en el que se encuentra este método (currentTarget).

    Diferencia entre target y currentTarget

    La clase Event dispone de dos propiedades que son target y currentTarget. La primera hace referencia al DisplayObject que lanzó el evento, mientras que currentTarget indica el DisplayObject que el evento está procesando en el momento de pedir la propiedad (en el nivel en el que se encuentra en ese momento).

    Ejemplo: A tiene un hijo B. Si B lanza un evento y A tiene definido un listener para ese evento, cuando B lo procese el target del evento será B y el currentTarget será A. Si el evento es capturado directamente en B, target y currentTarget serán iguales y apuntarán a B.


    Eventos globales

    Conceptualmente no existen eventos globales en AS3 como los que había en AS2 (ej: MouseMove). Lo más parecido sería registrar un listener en el objeto stage ya que todos los eventos que tengan el parámetro bubbles a true alcanzarán el objeto stage en su fase de bubbling (los eventos de ratón tienen este comportamiento por defecto).




    Sep14th

    Gracias SmashingMagazine!

    Alberto General Read on

    Acabo de entrar en www.smashingmagazine.com y me he llevado una agradable sorpresa al comprobar que había ganado The Unusually Useful Web Book; un libro muy interesante sobre usabilidad.

    Aquí la entrada

    Un saludo a SmashingMagazine!

    Y gracias! :)




    Sep12th

    Descuento para la MAX!

    Alberto General Read on

    Como nos recuerdan desde MIF, sólo quedan dos días (hasta el Viernes 14-Sept) para aprovechar el gran descuento que nos ofrecen desde esta gran comunidad para asistir a la Adobe MAX de Barcelona. Si estáis interesados en ir es una oportunidad que no se puede dejar pasar; el ahorro es de 300€ (descuento)!

    Yo ya he reservado mi entrada y me estoy preperando la agenda, aunque hay algunas ponencias que procuraré no perderme:

    - Flex best practices (Joe Berkovitz, Steven Webster y Ted Patrick)
    - Optimizing ActionScript 3 Performance (CŽdric Tabin)
    - Practical patterns in Flex (Joe Berkovitz)
    - Creating new Flex Components (Marco Casario)

    Enlace a las sesiones

    Espero encontrar mucha gente "de por aquí"...




    Aug22nd

    Aparece en una conferencia de la Adobe MAX!

    Alberto General Read on

    David Coletta de The Joy of Flex, necesita ayuda para su presentacion sobre optimización que hará en la Adobe MAX (Chicago, 30 de Septiembre). Más concretamente lo que necesita son casos reales de optimización y mejora de la performance en una aplicación hecha en Flex. De lo que reciba, si le es de utilidad hará algún tipo de mención en su conferencia para la MAX.

    Si tienes algo que aportar pásate por su post y déjale un comentario. Puede ser muy buena publicidad, y gratis!




    Aug21st

    Flash Player codename Moviestar

    Adobe está a punto de sacar un update de su Flash Player 9 que tiene como codename Moviestar (no confundir con la operadora móvil Movistar). En principio estará disponible una beta en http://labs.adobe.com en algún momento a lo largo del dia de hoy.

    Esta última revisión trae como novedad el soporte de video H.264 - estándar utilizado en Blu-Ray® y HD-DVD® - así como de High Efficiency AAC (HE-AAC) para audio. La implicación directa de esta nueva adición es que podremos visualizar contenido HD desde el Flash Player. Parece que una de las pocas ventajas que tenía Silverlight sobre el player de Adobe se ha venido abajo...

    Por cierto, desde Google están reencodeando (no creo que esta palabra exista :P) todos los videos de Youtube para pasarlos al formato H.264. Más info aquí.






    Close
    E-mail It