最近做的一个应用类似于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(new
tray()).bitmapData;SystemTrayIcon(NativeApplication.nativeApplication.icon).tooltip=this.title;SystemTrayIcon(NativeApplication.nativeApplication.icon).addEventListener(MouseEvent.CLICK, undock);SystemTrayIcon(NativeApplication.nativeApplication.icon).menu=createSystrayRootMenu();}}private
function 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=new
NativeMenu();var openNativeMenuItem:NativeMenuItem=new
NativeMenuItem("Open");var exitNativeMenuItem:NativeMenuItem=new
NativeMenuItem("Exit");openNativeMenuItem.addEventListener(Event.SELECT, undock);exitNativeMenuItem.addEventListener(Event.SELECT, closeApp);menu.addItem(openNativeMenuItem);menu.addItem(new
NativeMenuItem("",
true));menu.addItem(exitNativeMenuItem);return
menu;}//系统退出private
function 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
本文介绍了一个类似于QQ的应用如何实现在用户已登录状态下,关闭应用时自动最小化到系统托盘的功能。通过监听窗体的关闭事件并阻止默认的关闭行为,同时设置系统托盘图标及右键菜单来实现这一需求。
1632

被折叠的 条评论
为什么被折叠?



