Cuando desarrollé mi primer gran proyecto en Actionscript 2.0 con clases, la mayor parte de ellas contenían atributos estáticos "referencia" , o pasaba referencias como propiedad. Parecía que todo en flash perdía la referencia: enchufaba funciones a los onLoad de los parsers, y perdía la referencia, en los onClick de los botones perdía la referencia, los setInterval, venga a pasar referencias... parecía todos los eventos se habían aliado contra mí, y eso que ya tenía callo con problemas de referencias.
Incluso sugerí en algún foro la idea de hacer un FAQ de referencias por ser un problema muy común entre gente interesada por aprender Actionscript.
Pero con Flash 7.2, apareció la clase Delegate.
Éste es un ejemplo de mis frustraciones: un típico parser que simplemente visualiza un XML en un TextField en el que las referencias son todo problemas.
Noto cada día que el rollo-blog hace que todo vaya super deprisa: Escuchas un rumor y no sabes si pensar en razones que emocionan o emociones que razonan, y buscas piedad en San Google, que lo confirma y de paso te entrega una perla. Encuentras un blog de empleados de la revista Rolling Stone anunciando que hay entradas para los Strokes el sábado y lees que se venderán 500 entradas en Escridiscos a partir del viernes a las 10:30. tu dices... quiero esa fuente
Apunte nerd: La idea es la misma que la explotada last.fm o la de cualquier navegador gps: un mega-grafo de artistas y albumes en el que el peso de la arista viene determinado por el parecido "musical" entre ellos, para después, mostrar con un algoritmo de búsqueda de "adyacentes" a los artistas "afines".
Aquí os dejo la segunda entrega de mis periplo aprendiendo eventos. 100% recomendable para los que todavía no conocéis palabras como EventDispatcher, Delegate, Function.apply() o callback.
En la documentación de la clase, tenéis la explicación del ejemplo.
No llevo más de un año aprendiendo con eventos en mis clases y no me hizo falta ni un mes para darme cuenta de los problemas comunes que surten todos los foros. Pues bueno, parece que el nuevo Actionscript 3.0 va a ayudarnos un poco más.
# Delegates are now built into the language, making event dispatching easier.
In ActionScript 2.0, routing an event to a method required use of the mx.utils.Delegate class or other workarounds:
In ActionScript 3.0, a reference to a method automatically remembers the object instance it was extracted from; in essence, it is an automatic delegate. So, the code can simply be written as:
myButton.addEventListener(“click”, onClick);
Si no trabajas todavía con sistemas basados en eventos... no sufras más,
Y el mejor argumento para persuadirte es: ¿a que se trabaja bien con los listeners de los componentes? Pues bien, a lo sumo 10 líneas más en vuestras clases pueden aumentar al máximo vuestro código reutilizable.
A lo largo de estos días iré colocando código útil en base a mi periplo con los mismos para todos aquellos que empecéis de 0 con ellos.
Currently Browsing
You are currently browsing the electroduendes.com weblog archives
for Diciembre, 2005.