AIR: icono en la bandeja de sistema
15 de Noviembre de 2007 Autor: Andres Cayon Archivado en AIR, Tutoriales(Nota: este articulo utiliza terminología de entorno Windows, pero el código es válido para Mac)
Como todo programa de escritorio normal, una aplicación AIR queda situada en la barra de tareas al ser minimizada.
Sin embargo: ¿Es posible enviarla como un icono a la bandeja de sistema? La respuesta es sí. Existen ejemplos en Flex, pero en nuestro caso, como buenos fans de Dreamweaver, utilizaremos html y JavaScript.
Nuestro código realiza básicamente lo siguiente:
- Comprueba el estado de la ventana; si está minimizada, la hace desaparecer de la barra de tareas y muestra un icono en la bandeja de sistema. En el resto de estados(normal o maximizada) no aparece el icono y la aplicación se muestra normalmente en la barra de tareas
- Además el icono tiene un menu contextual definido por nosotros que nos permite restaurar la ventana o cerrar la aplicación (nuestro icono es la T negra en fondo naranja):

Descarga los archivos de ejemplo
Antes de continuar, expliquemos brevemente cómo crear un icono de sistema y un menú
Un poco de teoría
Entendiendo el icono de sistema
En AIR, el icono de sistema está definido por shell.icon, que contiene una propiedad de tipo Array llamada bitmaps en la que se carga la imagen. La imagen puede ser gif, jpg o png, aunque se recomienda ésta última.
shell.icon.bitmaps no acepta simplemente una ruta a la imagen, sino que requiere pasarle el bitmapData de la misma. Por tanto esto no funciona:
air.Shell.shell.icon.bitmaps="imagen_de_icono.png" //mal!!!
¿Cómo obtener el bitmapData de la imagen? Podemos utilizar una instancia de Loader que una vez cargada nos proporcione esta información. Es decir:
- Creamos un loader y cargamos la imagen en el mismo
- Una vez cargada, asignamos a air.Shell.shell.icon.bitmaps el bitmapData de la imagen contenida en el loader
- Cuando air.Shell.shell.icon.bitmaps tiene un valor, el icono aparece en la bandeja. Si lo vaciamos, el icono desaparece.
Entendiendo los menus:
En AIR cada menú es una instancia de NativeMenu que contiene dentro menu items que son a su vez instancias de NativeMenuItem.
Una vez creado, el menu se adjunta al icono asociándolo al atributo “menu” de shell.icon:
air.Shell.shell.icon.menu=miMenu
Durante el código veremos como se adjuntan los items al menu.
Una vez entendidos estos dos conceptos, comenzamos con el código.
Tiene muy buena pinta y después del MIF I me he quedado prendado de AIR, asà que el finde lo probaré. saludos
Ya nos contarás la experiencia 8-)
Comenta cualquier problema para poder corregirlo ;-)
hola quiero saber como insertar un video de windowsmeda en dreamweaver para hacer un streaming en vivo.
Te recomiendo te registres para el evento que organizamos el de Febrero:
http://www.dwug.es/go/412
Seguro que Paco te da ideas 8-)
ok como me inscribo ? puedes mandarme mas informacion