每次當我們將電腦一開機,進入到桌面系統之後~ 隨之而來的就是載入一連串的常駐程式~ 或是開機自動執行的相關程式~
而這些程式有些會出現System Tray Icon在右下角的工具列中~
下述程式就是要處理這樣的動作滴~ 不過我改了一點小東西~
有裝過Apache 或 Tomcat Server嗎?它們右下角的System Tray Icon會隨著啟動或關閉伺服器而有所變化~ 底下程式可以為你做到~ 玩玩看吧~ ^^
P.S. 請準備16x16、128x128的圖示
SystemTray.as
/**
* Date: 2008-03-11
* Shen (http://blog.ring.idv.tw)
**/
package
{
import flash.desktop.*;
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class SystemTray
{
private static var _instance:SystemTray;
public static function getInstance():SystemTray
{
if(SystemTray._instance == null)
{
SystemTray._instance = new SystemTray(new PrivateClass());
}
return SystemTray._instance;
}
public function SystemTray(pvt:PrivateClass)
{
trace("SystemTray initialized!");
NativeApplication.nativeApplication.autoExit = false;
var icon:Loader = new Loader();
var iconMenu:NativeMenu = new NativeMenu();
var exitCommand:NativeMenuItem = iconMenu.addItem(new NativeMenuItem("Exit"));
exitCommand.addEventListener(Event.SELECT, Exit);
if (NativeApplication.supportsSystemTrayIcon)
{
icon.contentLoaderInfo.addEventListener(Event.COMPLETE, iconLoadComplete);
icon.load(new URLRequest("icons/StopWatchIcon16.png"));
var systray:SystemTrayIcon = NativeApplication.nativeApplication.icon as SystemTrayIcon;
systray.tooltip = "CSProxy";
systray.menu = iconMenu;
}
if (NativeApplication.supportsDockIcon)
{
icon.contentLoaderInfo.addEventListener(Event.COMPLETE,iconLoadComplete);
icon.load(new URLRequest("icons/StopWatchIcon128.png"));
var dock:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;
dock.menu = iconMenu;
}
}
private function iconLoadComplete(event:Event):void
{
NativeApplication.nativeApplication.icon.bitmaps = [event.target.content.bitmapData];
}
public function onConnected()
{
var icon:Loader = new Loader();
icon.contentLoaderInfo.addEventListener(Event.COMPLETE,iconLoadComplete);
if (NativeApplication.supportsSystemTrayIcon)
icon.load(new URLRequest("icons/logo16.jpg"));
if (NativeApplication.supportsDockIcon)
icon.load(new URLRequest("icons/logo128.jpg"));
}
public function onDisconnected()
{
var icon:Loader = new Loader();
icon.contentLoaderInfo.addEventListener(Event.COMPLETE,iconLoadComplete);
if (NativeApplication.supportsSystemTrayIcon)
icon.load(new URLRequest("icons/StopWatchIcon16.png"));
if (NativeApplication.supportsDockIcon)
icon.load(new URLRequest("icons/StopWatchIcon128.png"));
}
private function Exit(event:Event):void
{
NativeApplication.nativeApplication.icon.bitmaps = [];
NativeApplication.nativeApplication.exit();
}
}
}
class PrivateClass
{
public function PrivateClass( )
{
trace("PrivateClass called");
}
}
Flash
var singleton:SystemTray = SystemTray.getInstance(); //改變啟動圖示 singleton.onConnected(); //改變關閉圖示 singleton.onDisconnected();
相關資源

WOW!這個屌^^b
2008-03-11 17:10:40
哈~ 趕工趕工~ ^^ CSProxy雛型愈來愈完整了~
2008-03-11 23:07:48
超酷的耶
BTW 我打開FLASH CS3 就能弄了嗎?
還是要載什麼??
2008-03-12 10:11:29
基本上用Flash CS3就可以開發了~
不過建議你去裝一下 Adobe AIR Update for Flash CS3 Professional~
不然用AIR SDK會比較繁瑣 ^^
2008-03-12 16:15:11