#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.
Para los que huyen del código, otra manera de darles el orden de tabulación es con el desconocido panel Accesibilidad de Flash que se encuentra en Window > Other Panels > Accesibility, donde cuando selecionamos un elemento podemos asignarle un tabIndex manualmente. El resultado es el mismo que el trabajo por código con tabIndex.

Para preparar el foco en el elemento que desamos inicialmente (por ejemplo el primer campo del formulario) simplemente tenemos que hacer:
-
stage.focus = nombreElemento;
Simple, ¿no?, bastante mejor que en AS2.
Si trabajaramos sobre componentes, sin duda sería mucho más interesante emplear el mencionado FocusManager ya que nos permite tener un control mucho más detallado sobre los focos, relativos incluso al componente que lo emplea, eventos derivados del foco, conocimiento sobre el siguiente elemento a tomar el foco desde la perspectiva del componente actual, etc.
Perlas de FOTB, ByteArray por Lee Brimelow
Lee Brimelow impartió una charla dentro del Flash on the Beach pasado en el que trató el tema de ByteArray, desde la base. Es un buen recurso que no puedo dejar pasar sin postearlo por aquí para tenerlo a mano en caso de necesitarlo, y que seguro que a más de uno le viene bien para refrescar o comenzar con ello.

A modo de introducción, cuando hablamos de ByteArray hablamos de desarrollos en los que queremos optimizar y mejorar el trabajo con datos binarios (como por ejemplo trabajo con audio, con datos en formato binario, optimización del tráfico de datos...) y su uso se condensa en la clase ByteArray disponible desde Flash Player 9 y Air 1.0, siempre hablando evidentemente de Action Script 3.
Read more
AdobeEnVivo, grabación de eSeminars disponibles
![[Q] interactiva ha participado en el Adobe En Vivo Online, organizado por GarageFlash, con el eSeminar: Juegos en Flash Lite [Q] interactiva ha participado en el Adobe En Vivo Online, organizado por GarageFlash, con el eSeminar: Juegos en Flash Lite](http://www.q-interactiva.com/blog/imagenes/adobeenvivo_preso.jpg)
Pues AdobeEnVivo online ya ha finalizado, y la gente de GarageFlash no ha tardado mucho en publicar los enlaces a todas las grabaciones de Adobe Acrobat Connect, es decir video de lujo de las conferencias, con audio, posibilidad de moverte por la charla a tu antojo, etc.
Desde [Q] colaboramos en el evento mediante la charla que impartió Marcos González titulada "Juegos en Flash Lite", y que hemos de decir que tuvo una magnífica respuesta por parte de los hasta más de 70 asistentes que hubo en determinados momentos de la misma. Esta colaboración se hizo a través del Grupo de Usuarios de Móviles y Dispositivos de Adobe España, Blocketpc, junto con otra charla impartida por Raúl Jiménez.
El evento se cierra como un rotundo éxito (al menos desde nuestro punto de vista) ya que ha contado con una participación espectacular, ya no solo en asistencia, sino en cantidad y calidad de ponentes y de la variedad de países que se han unido al evento, siendo claramente un referente en coordinación y participación de diferentes Grupos de Usuarios de Adobe de forma conjunta ya no solo en nuestra lengua, sino como ejemplo para toda la comunidad. Nuestra enhorabuena desde aqui al Grupo de Usuarios de Perú GarageFlash por la iniciativa.
Os recordamos que este evento también se lleva a cabo en "real", y que el año anterior también contó con un importantísimo programa de talleres y conferencias. Esperamos poder estar allí personalmente en alguna de las futuras ediciones, que seguro serán igual o mejores a la anterior.
ActionScript 3.0 Library para la API de la plataforma Facebook

Hace unos días Adobe anunció su colaboración con Facebook, creando una librería en AS3 que permita el uso de la API para la plataforma facebook, de tal manera que se acerque a los desarrolladores flash y flex la posibilidad de crear aplicaiciones sociales basándose en el prestigioso portal.
Este anuncio va acompañado de un video por parte de uno de los miembros de Adobe, así como de un apartado en el Devnet dedicado a esto en exclusiva.
Interesante recurso, no es la primera vez que por nuestro estudio pasa la posibilidad de realizar algo para facebook, y sin duda esto puede ser una ayuda para desarrollar con flash, ya que hasta la fecha el proceso no era muy sencillo por lo que he podido leer en otros recursos en la web. De momento esto acaba de empezar, pero el hecho de estar soportado por Adobe y Facebook, hace pensar que no es algo casual o que nace con perspectiva de no vivir, sino que será ampliado y mejorado en el tiempo.
Flash CS4, ¡quiero mi ayuda ya!
Pues resulta que si bien se que en algunas cosas debo ser una "rara avis", en otras no, y estoy seguro que a muchos les gustará tener su ayuda de Flash sin depender de una conexión a Internet, su velocidad u otros temas similares.
Y nuestro amigo CS4 ha decidido que la ayuda es online... o al menos eso creíamos los mortales. Entiendo el motivo, sin duda es mucho más facil de mantener actualizada una ayuda online pero eso no quita que cuando uno busca desesperado la solución a un fallo que le está convirtiendo en una especie de monstruo, tenga que sufrir además problemas en el acceso al único salvavidas que tiene a mano.

Pues bien para todos aquellos que como yo les gusta la ayuda rápida, varias soluciones para CS4:
1) Desactivar la ayuda online, y tirar de ayuda local (aunque en el navegador)
Esta solución no está mal, no tengo nada en contra del navegador, asi que para mi es totalmente válida. Para lograrlo los siguientes pasos:
Menú Window > Extensions > Connections
Ahí en la ventanita que se nos abre, en el menu (icono superior derecho), Offline Options
Y nos aparecerá una ventana que dice algo como: "Keep me offline". Si marcamos esta casilla, dejaremos de acceder a la ayuda online, y como consecuencia perderemos las extensiones que requieren conexiones a internet, como kuler. No obstante es algo fácil de cambiar y en ocasiones, la ayuda se necesita YA.
2) Descargar aplicaciones con la referencia de Action Script 3
Para los que quieran acceder a la referencia del lenguaje AS3 de manera local y rápida, tenemos también alternativas, en forma de aplicaciones AIR.
Este recurso lo he encontrado aquí
He probado ambas soluciones, y las dos me parecen bien, asi que a falta de una... dos. Pero que vamos, que aunque la ayuda salga online, tenemos nuestra copia offline tanto en Win como en Mac.
[Q] en AdobeHispano
![[Q] interactiva participará impartiendo una ponencia en el evento Adobe Hispano 2009 [Q] interactiva participará impartiendo una ponencia en el evento Adobe Hispano 2009](http://www.q-interactiva.com/blog/imagenes/adobehispano.jpg)
Pues no paramos... ahora toca otro evento, esta vez online: Adobe Hispano (organizado por el Grupo de Usuarios Adobe en Colombia - Xpert). Con motivo de este evento, se reune a gran parte de especialistas en determinadas materias relacionadas con el diseño y el desarrollo web, y en el cual tendremos la oportunidad de participar con la charla: Flash y Nokia, una historia de amor.
Nuestra participación viene relacionada con nuestra actividad como comanagers de BlocketPC, el Spanish Mobile Adobue User Group que tantas alegrías nos está dando. En esta ocasión lograremos poner a Flash Lite en una posición especialmente destacada al realizar 2 charlas (Raúl impartirá una sobre uno de nuestros proyectos open source: feather framework) dedicadas a esta versión del flash player.
El evento abarca unos cuantos programas de Adobe durante 3 días completos y repletos de charlas interesantes como podéis ver en el programa. Desde el viernes 27 de Febrero al 1 de Marzo (domingo) tendremos la oportunidad de asistir a muchas charlas sobre Flash, Dreamweaver, AIR, Pixel Bender, SoundBooth, Flex, Premier, Encore, InDesign, Photoshop, After Effects, Ilustrator, Fireworks y por supuesto nuestro querido Flash Lite
En este evento participan amigos como Andrés Cayón (Tecnorama y DWUG), Raúl Jimenez (elecash.org y BlocketPC), Freddie Vega (Cristalab), Alejandro Rodríguez (Mediterranean Adobe User Group), etc.
Sin duda un gran evento, donde se dará una visión cercana a la comunidad y en lengua castellana, de los programas más destacados de Adobe. Así que para todos aquellos que siempre os quejáis del idioma, esta es una ocasión única.
Documentando clases bajo Action Script con NaturalDocs
A raíz del lanzamiento de la sección de proyectos opensource de Blocketpc, estuvimos consultando sistemas de documentación automatizada para las clases que empleábamos en dichos proyectos. Mirando y mirando, encontramos alguna solución interesante (en mi caso no me servía al ser para mac), y finalmente dimos con NaturalDocs (existen otras conocidas como ZenDoc y As2Doc). De regalito, os dejamos una comparativa de algunas de ellas en osflash.
Si bien es algo curioso volver a la ventana de comandos para hacer nuestros pinitos, tenemos que decir que funciona y muy bien! Además poniendo un poco de atención a su documentación, podemos agradecer que los comentarios tipo JavaDoc que nos insertan plugins como FDT para eclipse, están bastante soportados.
El resultado lo podéis ver aquí y aquí.
Un ejemplo de como trabajar con NaturalDocs.
Imaginamos que tenemos nuestras clases en una carpeta llamada proyecto/src/classes/ y queremos generar la documentación en proyecto/doc/. La cosa sería tal que así:
NaturalDocs -i C:\proyecto\src\classes
-o FramedHTML C:\proyecto\doc
-p C:\proyecto\doc\natural
Donde el primer parámetro es el directorio donde se encuentran las clases de las que se generará la documentación (se puede hilar más fino), el segundo es por un lado si la documentación se va a generar con un frame, o HTML sin frames (formato de salida), además de la carpeta donde se va a generar, y el tercero es el directorio donde NaturalDocs guardará los archivos que emplea para llevar un control sobre la generación de documentación. Debe ser exclusivo para cada proyecto.
Una de las grandes e interesantes características de NaturalDocs es que cada vez que generas la documentación, comprueba lo que ha cambiado de la anterior, y solamente actualiza las partes necesarias. Otra cosa que es muy agradable, es lo sencillo que es cambiar los CSS de la documentación generada en HTML, para personalizarla.
En general no se documentan las clases, y si de la que se programan, se tiene un poco de cuidado comentando los métodos y los parámetros, no resulta tan costoso. Y luego generar una documentación aceptable es tan sencillo como esto. No os voy a decir que para un banner documentéis, pero si váis a hacer un proyecto curioso o en el que trabaje más gente, o desde luego si lo váis a hacer público, os animo a hacerlo!
The Open Screen Project
Pues aunque ya he marcado la noticia en blocketpc, no puedo dejar de hacerlo aquí también porque las repercusiones que pueden tener para la distribución del player de flash y para la expansión de la plataforma en el mercado de los dispositivos móviles pueden ser increibles.
Adobe anuncia Open Screen Project, que tratará de converger el desarrollo de PCs y dispositivos no-PCs mediante la plataforma Flash primero, y luego AIR. Si bien era algo que tarde o temprano tenía que ocurrir, personalmente no mes esperaba un anuncio oficial tan pronto. Aunque el anuncio es un inicio de proyecto, y no parece que sea algo inminente.

Las fuentes oficiales que han sacado este notición son Bill Perry para Mobile & Devices y Ryan Stewart para PCs.

El proyecto tiene detrás una lista muy importante de empresas del sector desde fabricantes de PCs y móviles a operadores, pasando por otro tipo de empresas.
- Adobe
- ARM
- BBC
- Chungwha Telecom
- Cisco
- Intel
- LG Electronics
- Marvell
- Motorola
- MTV Networks
- NBC Universal
- Nokia
- NTT DoCoMo
- Qualcomm
- Samsung Electronics
- Sony Ericsson
- Toshiba
- Verizon Wireless
El proyecto implica cambios en algunas decisiones de Adobe hasta la fecha, como eliminar las cuaotas de licencias para las siguientes versiones principales del player Flash y AIR (futuro) para dispositivos, lo que se traduce que los desarrolladores podremos distribuir el player sin tener que pagar a Adobe. Además se planea publicar la API de la capa de portabilidad del Flash Player. Estos dos elementos combinados, hacen que los desarrolladores entremos en juego como elementos clave a la hora de la distribución del player y de llevar el mismo a otros dispositivos importantes para nosotros. No es open source, pero el player se convertirá en un elemento mucho más ágil y con más capacidad de estar implantado en diferentes plataformas.
Otra de las novedades en la línea a seguir por Adobe es que se publicarán los protocolos de Flash Cast y AMF para obtener servicios de datos más robustos.
Según Bill, cuando esto ocurra, a los desarrolladores deberemos tomar parte en este movimiento,continuando con la creación de experiencias y contenido para dispositivos móviles, y la clave de este proyecto será que tendremos un entorno consistente a través de diferentes dispositivos incluyendo ordenadores personales llegando a poder desarrollar aplicaciones AIR.
En un futuro cercano, los desarrolladores tradicionales de Flash y Flex para escritorio podrán trabajar con flash y AIR para más que escritorio, lo que también implicará la irrupción en el mundo móvil de un grupo de desarrolladores que vienen de otros perfiles.
Bueno, para informaros al detalle de las dos vertienes:
Open Screen Project, visión para desarrolladores PC
Open Screen Project, visión para desarrolladores móviles
Web oficial en Adobe de Open Screen Project