Air实现系统托盘功能

来源:互联网 发布:平面美工设计 编辑:程序博客网 时间:2024/05/18 01:55

最近做的一个应用类似于QQ,如果用户已经登录,关闭的时候自动最小化到系统托盘位置 主要实现如下:
1,添加窗体的closing事件,在事件处理中阻止系统默认的关闭事件

[Embed(source="resources/images/logo/tray.png")]
public static const tray:Class;
private var trayImage:BitmapData;
private function initTray():void {
this.addEventListener(Event.CLOSING, handleClosingApplication);
if(NativeApplication.supportsSystemTrayIcon) {
trayImage=Bitmap(newtray()).bitmapData;
SystemTrayIcon(NativeApplication.nativeApplication.icon).tooltip=this.title;
SystemTrayIcon(NativeApplication.nativeApplication.icon).addEventListener(MouseEvent.CLICK, undock);
SystemTrayIcon(NativeApplication.nativeApplication.icon).menu=createSystrayRootMenu();
}
}
privatefunction handleClosingApplication(event:Event):void{
if(stage.nativeWindow.visible) {
//判断是否需要退出
if(UserGenerator.user) {
stage.nativeWindow.visible=false;
//初始化系统托盘图标
NativeApplication.nativeApplication.icon.bitmaps=[trayImage];
if(event) {
event.preventDefault();
}
}else {
exit();
}
}
}

2,初始化系统托盘右键菜单

private function createSystrayRootMenu():NativeMenu {
var menu:NativeMenu=newNativeMenu();
var openNativeMenuItem:NativeMenuItem=newNativeMenuItem("Open");
var exitNativeMenuItem:NativeMenuItem=newNativeMenuItem("Exit");
openNativeMenuItem.addEventListener(Event.SELECT, undock);
exitNativeMenuItem.addEventListener(Event.SELECT, closeApp);
menu.addItem(openNativeMenuItem);
menu.addItem(newNativeMenuItem("",true));
menu.addItem(exitNativeMenuItem);
returnmenu;
}
//系统退出
privatefunction closeApp(evt:Event):void{
exit();
}
//还原界面
public function undock(evt:Event):void {
stage.nativeWindow.visible=true;
stage.nativeWindow.orderToFront();
NativeApplication.nativeApplication.icon.bitmaps=[];
}

转载:http://www.wiui.net/?cat=6


原创粉丝点击