Archives For clases

Design Patterns

Cuando era pequeño aprendí a hablar. Lo mejor de todo es que la gente me entendía. Y mientras más practicaba, y más viejo me ponía, pronunciaba las palabras más claramente, y me era más sencillo expresar mis ideas. En ese entonces no tenía idea de lo que era una oración, un verbo, un sustantivo. No conocía esos conceptos, sin embargo, los usaba diariamente. Fue después, en escuela primaria, que aprendí de gramática. Y para mí, aparte de que era una materia aburrida, no se trataba de aprender nada nuevo, sino de una materia que aclaraba lo que yo ya sabía y venía usando desde hace años. Aprender de gramática me aclaró el panorama, me ayudó a utilizar mi idioma de mejor manera.

Si tu, profesionalmente, o como hobby, te dedicas a programar, de seguro has escuchado hablar a diestra y siniestra de los famosos patrones de diseño. Que el singleton, que el factory, que el mvc, etc. Si no has oido de ellos, entonces, realmente, vives en otro planeta. Yo no vivía en otro planeta, pero por mucho tiempo me hice de la vista gorda y siempre daba la espalda cada vez que habia oportunidad de aprender sobre ese tema. Simplemente creía que ese tema y que mi vida simplemente era más fácil sin usar los famosos patrones de diseño.

De repente, Adobe (o fue Macromedia) inventó Flex, una solución de desarrollo de RIA’s (en pocas, aplicaciones para internet) que hace uso extensivo, según lo que he leído, del patrón MVC. Como me interesa aprender Flex, decidí que era hora de saber un poco más acerca de los complicados y famosos patrones de diseño, sobre todo el famosísimo MVC. Cogí un libro sobre el tema, y mientras más leía, me daba cuenta que estaba aprendiendo sobre algo que ya sabía. Igual que años antes, con la gramática, ahora mi libro de patrones de diseño no me enseñaba nada nuevo, sino que aclaraba el uso de algo que yo ya venía usando, bien o mal, desde hace tiempos. Ese librito vino a poner un nombre a lo que yo ya usaba, pero que no había bautizado, y aparte, vino a ayudarme a ver problemas en mis programas que por falta de experiencia yo no había visto.

Continue Reading…

En un post anterior puse un experimento de actionscript para hacer un menu. En esta version tengo algunas mejoras, sobre todo, le di la posibilidad a los botones para ejecutar una funcion al ser oprimidos. Puedo destruir el menu llamando a un metodo. Puedo alinear el texto animado, a la derecha o bajo el menu.

  1. //primero creo una referencia global al lugar donde esta el menu
  2. _global.myroot=this
  3. //creo las functiones respectivas a cada menu
  4. function traceID(){
  5.   trace(this.uid)
  6.   //dara como resultado el id del boton aplastado
  7. }
  8.  
  9. function traceLabel(){
  10.   trace(this.qlabel)
  11.   //dara como resultado la etiqueta del boton
  12. }
  13. //destruye el menu lilmenupanel
  14. function destroyMe(){
  15.   _global.myroot.lilmenupanel.destroyMenu()
  16. }
  17. //defino el texto que el menu tiene por default
  18. this.lilmenupanel.mainlabel="blog.innocuo.com"
  19. //anado items al menu, dos parametros: titulo del boton, y descripcion
  20. //el tercer parametro es una referencia a una funcion
  21. this.lilmenupanel.addMenuItem("Home","01 Home",this.traceID)
  22. this.lilmenupanel.addMenuItem("Contact","02 Contact",this.traceLabel)
  23. this.lilmenupanel.addMenuItem("Portfolio","Mi trabajo",this.destroyMe)
  24. //puedo alinear el texto animado con "right" o "bottom"
  25. this.lilmenupanel.alignment="bottom"
  26. //una vez que termino de añadir items, puedo mostrar el menu
  27. this.lilmenupanel.renderMenu()

El siguiente es un ejemplo un poco mas complejo, donde creo y destruyo un menu secundario

Bajar el codigo fuente: dando click aqui.

En el post anterior mencionaba el sitio de Sean Kennedy Santos. Pues bien, estaba jugando en flash, y el resultado fue un menu parecido al de ese sitio.

Se basa en tres clases: menupanel (que controla el menu en general), menuitem(que corresponde a cada boton del menu) y typewritter (que es una clase para animar el texto)

Para hacerla funcionar, primero arrastro mi movieclip de menu al stage. Luego, añado las siguientes lineas de codigo:

  1. //defino el texto que el menu tiene por default
  2. this.lilmenupanel.mainlabel="blog.innocuo.com"
  3. //anado items al menu, al momento son solo dos parametros: titulo del boton, y descripcion
  4. this.lilmenupanel.addMenuItem("Home","01 Home")
  5. this.lilmenupanel.addMenuItem("Contact","02 Contact")
  6. this.lilmenupanel.addMenuItem("Portfolio","Mi trabajo")
  7. //una vez que termino de añadir items, puedo mostrar el menu
  8. this.lilmenupanel.renderMenu()

el metodo addMenuItem me permite agregar botones a mi menu, con dos parametros: el texto del boton, y la descripcion (que es la que se va a animar)
Una vez que termino de añadir items a mi menu, lo renderizo con el metodo renderMenu.

Este es solo un ejemplo, los botones no estan habilitados para realizar accion alguna (talvez siga costumizando este menu para hacer una especie de componente).

Bajar el codigo fuente: dando click aqui.