Tray Icon animado en AIR
Autor de post: David Villegas – Dvgmex
Estuve buscando como usar los Tray Ballons en Windows desde AIR, pero al no encontrar hice una alternativa, con mismos mensajes cortos pero en el icono directamente! Algo así como un Tray Icon con Mensaje tipo Ticker. Que además funciona tanto en Windows como en Mac.
Aquí se ve el ejemplo:
Este es el código que utilizo en mi película principal:
- import flash.desktop.DockIcon;
- import flash.desktop.SystemTrayIcon;
- import flash.desktop.NotificationType;
- import flash.desktop.NativeApplication;
- if (NativeApplication.supportsDockIcon)
- {
- var dockIcon:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;
- }
- else if (NativeApplication.supportsSystemTrayIcon)
- {
- var sysTrayIcon:SystemTrayIcon = NativeApplication.nativeApplication.icon as SystemTrayIcon;
- sysTrayIcon.tooltip = "Mi ToolTip \n" + "Flash Version: " + Capabilities.version;
- }
- var icon16bitmapData:BitmapData = new i16(0,0);
- var icon32bitmapData:BitmapData = new i32(0,0);
- var icon48bitmapData:BitmapData = new i48(0,0);
- var icon128bitmapData:BitmapData = new i128(0,0);
- var iconDefaultSet = new Array(icon16bitmapData,icon32bitmapData,icon48bitmapData,icon128bitmapData);
- //Carga TrayIconTicker
- var MyTrayIconTicker = new TrayIconTicker();
- MyTrayIconTicker.Show("MENSAJE INFORMATIVO");
Y este código lo coloco dentro de un MovieClip llamado “TrayIconTicker” que es el que utilizo para animar y crear el icono:
- import flash.desktop.DockIcon;
- import flash.desktop.SystemTrayIcon;
- import flash.desktop.NotificationType;
- import flash.desktop.NativeApplication;
- var tickerWidth = 128;
- var tickerStep = 8;
- function Show(sMsg)
- {
- txtTicker.text = sMsg;
- txtTicker.autoSize = TextFieldAutoSize.LEFT;
- addEventListener(Event.ENTER_FRAME,myEnterFrame);
- }
- function Hide()
- {
- txtTicker.text = ".";
- txtTicker.autoSize = TextFieldAutoSize.LEFT;
- removeEventListener(Event.ENTER_FRAME,myEnterFrame);
- }
- function myEnterFrame(event:Event)
- {
- txtTicker.x = txtTicker.x - tickerStep;
- if ((txtTicker.x + txtTicker.width)<0)
- {
- txtTicker.x = tickerWidth;
- }
- var icon128bitmapData:BitmapData = new BitmapData(tickerWidth,tickerWidth,true,0x00ffffff);
- icon128bitmapData.draw(this);
- var iconSet = new Array(icon128bitmapData);
- NativeApplication.nativeApplication.icon.bitmaps = iconSet;
- }
Puedes descargar el archivo .FLA del ejemplo para verlo implementado.
Compártelo:
Visto 6.993 veces
muy buen tip. muchas gracias
Excelente post!!!
Yo también siempre tuve vontad de hacer eso en las aplicaciones sólo no sepava como.Ahora ya lo sé.
Saludos,
Silva Developer
silva.developer@gmail.com