blog.Ring.idv.tw

2008 March

Adobe AIR: 打造自己的SystemTray

每次當我們將電腦一開機,進入到桌面系統之後~ 隨之而來的就是載入一連串的常駐程式~ 或是開機自動執行的相關程式~

而這些程式有些會出現System Tray Icon在右下角的工具列中~

下述程式就是要處理這樣的動作滴~ 不過我改了一點小東西~

有裝過ApacheTomcat 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();

相關資源

Working with the dock and the system tray

Flash LiveDocs:Taskbar icons

2008-03-11 15:43:36 | Comments (4)

Preparing for the Flash Player 9 April 2008 Security Update

Preparing for the Flash Player 9 April 2008 Security Update

下個月Flash Player 9 將有安全性的更新~

主要專注於「Policy file control」、「DNS rebinding attack」的安全性更新~

由於這和我目前預計開發的「CSProxy」有點相關~ 所以值得關注...

有興趣的人可以參考Stanford Security Lab所發表的:「Protecting Browsers from DNS Rebinding Attacks

2008-03-11 11:16:30 | Add Comment

這位騎士你也太衝了吧~ 哈~

今天和老師一同去新竹討論一些事項~ 就在回途台中的中港路上~ 停一個紅燈時~

這位重機騎士就很衝地直接停在我們前面~ 哈哈~ 猛啊~

不過這幾天仍呈現忙碌狀態~ 尤其是今天又多了一件緊急的要事必須趕在禮拜四之前完成~

當我寫好這篇po文時~ 發覺... 我剩下不到七十二小時... 呃...

2008-03-11 00:25:29 | Add Comment

2008年統一獅會員卡

今天中午回家休息時~ 郵差先生把我叫醒了~ 請我下去收掛號~

而拿到手中的就是前陣子於網路訂購的「2008年統一獅會員卡」~

想說一張才「100」元~ 就隨意給它買了下去~ 有沒有人要一起看棒球的呀 ^^a

其實追溯上次進棒球場看棒球,已經是我十年前還是國中的事了... 時間過得可真快~

最近剛好有「2008年奧運棒球最終資格排名賽」希望中華隊能打進前三名 ^^ Go去奧運~

不過真的需要這位小弟弟大力地加持~ ^^

P.S. 我有一個「痞客邦」VIP七折優惠的序號~ 有需要的人請留下您的留言索取 ^^ 格主贈送!

2008-03-07 14:29:35 | Comments (4)

請問您的「ㄛ都麥」有熄火用牽的嗎?

今天下午要出門去學校時~

突然看到本棟住家的進出大門被貼了這麼一張~

哈哈~ 真想回答有啦有啦~ ^^ 我很乖都有用「牽」的~ 呵呵~

2008-03-06 19:43:06 | Add Comment

Next Posts~:::~Previous Posts
Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment