http://www.flashas.net/html/air/20090425/4132.html
var mainMenu:NativeMenu = new NativeMenu();
var minimizeMenu:NativeMenuItem = new NativeMenuItem("Minimize");
var maximizeMenu:NativeMenuItem = new NativeMenuItem("Maximize");
var sepMenu:NativeMenuItem = new NativeMenuItem("",true);
var restoreMenu:NativeMenuItem = new NativeMenuItem("Restore");
var closeMenu:NativeMenuItem = new NativeMenuItem("Close");
minimizeMenu.addEventListener(Event.Select, handleMenuClick);
maximizeMenu.addEventListener(Event.Select, handleMenuClick);
restoreMenu.addEventListener(Event.Select, handleMenuClick);
closeMenu.addEventListener(Event.Select, handleMenuClick);
mainMenu.addItem(minimizeMenu);
mainMenu.addItem(maximizeMenu);
mainMenu.addItem(sepMenu);
mainMenu.addItem(restoreMenu);
mainMenu.addItem(closeMenu);
this.contextMenu=mainMenu;
系统托盘:
var sysTray:SystemTrayIcon =
NativeApplication.nativeApplication.icon as SystemTrayIcon;
sysTray.tooltip = "测试tray";
//
sysTray.menu = this.contextMenu;
sysTray.addEventListener(MouseEvent.CLICK,trayClick);
如何将应用程序最小化到托盘,然后给托盘图标加右键菜单以及添加相应的事件,来激活应用程序窗体.
整个流程:
1. 初始化应用时改变系统默认情况下以系统X事件的处理.
2. 定义新处理逻辑(本文是弹出对话框)
3. 生成托盘图标并置于状态栏
4. 给托盘图标加上右键菜单(本文是exit,和open两项)
5. 给菜单加上相应的事件
6. 大功告成
主要方法:
-
private
var dockImage:BitmapData;
-
-
-
public
function initApplication():
void
{
-
var loader:Loader=
new
Loader();
-
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,prepareForSystray);
-
loader.load(
new
URLRequest(
"assets/images/32.png"
));
-
this
.addEventListener(Event.CLOSING,closingApplication);
-
}
-
-
-
public
function closingApplication(event:Event):
void
{
-
event.preventDefault();
-
Alert.yesLabel=
"Close"
;
-
Alert.noLabel=
"Mini"
;
-
Alert.show(
"Close or Minimize?"
,
"Close?"
,
3
,
this
, alertCloseHandler);
-
}
-
-
private
function alertCloseHandler(event:CloseEvent):
void
{
-
if
(event.detail==Alert.YES){
-
closeApp(event);
-
}
else
{
-
dock();
-
}
-
}
-
-
-
public
function prepareForSystray(event:Event):
void
{
-
dockImage=event.target.content.bitmapData;
-
if
(NativeApplication.supportsSystemTrayIcon){
-
setSystemTrayProperties();
-
SystemTrayIcon(NativeApplication.nativeApplication.icon).menu=createSystrayRootMenu();
-
}
-
}
-
-
public
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 setSystemTrayProperties():
void
{
-
SystemTrayIcon(NativeApplication.nativeApplication .icon).tooltip =
"TurboSquid squidword"
;
-
SystemTrayIcon(NativeApplication.nativeApplication .icon).addEventListener(MouseEvent.CLICK, undock);
-
stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, nwMinimized);
-
}
-
-
-
private
function nwMinimized(displayStateEvent:NativeWindowDisplayStateEvent):
void
{
-
if
(displayStateEvent.afterDisplayState == NativeWindowDisplayState.MINIMIZED) {
-
displayStateEvent.preventDefault();
-
dock();
-
}
-
}
-
-
-
public
function dock():
void
{
-
stage.nativeWindow.visible =
false
;
-
NativeApplication.nativeApplication.icon.bitmaps = [dockImage];
-
}
-
-
-
public
function undock(evt:Event):
void
{
-
stage.nativeWindow.visible =
true
;
-
stage.nativeWindow.orderToFront();
-
NativeApplication.nativeApplication .icon.bitmaps = [];将托盘图标清空
-
}
-
-
-
private
function closeApp(evt:Event):
void
{
-
stage.nativeWindow.close();
-
}
-
分享到:
相关推荐
"Flex3Air最小化到系统托盘"这个主题主要涉及的是如何在Flex3Air应用中实现窗口最小化功能,并将应用程序图标隐藏到操作系统的系统托盘区域,而不是传统的任务栏上。这一功能在很多桌面应用中都很常见,比如电子邮件...
在本文中,我们将深入探讨如何使用Adobe Flex和Adobe AIR技术来创建应用程序的系统托盘以及托盘菜单。Flex是一款强大的开发框架,用于构建富互联网应用(RIA),而AIR(Adobe Integrated Runtime)则允许这些Flex...
标题 "AIR System Tray and Dock Example" 提供了一个关键线索,表明我们要探讨的是关于Adobe Integrated Runtime (AIR)的应用程序,特别是如何在系统托盘或Dock区域实现功能。在计算机用户界面中,系统托盘通常位于...
在本文中,我们将深入探讨Adobe AIR(Adobe Integrated Runtime)教程中的关键知识点,特别是关于创建右键菜单和系统托盘(Tray)功能的实现方法。Adobe AIR允许开发者构建跨平台的桌面应用程序,结合了Flash和Flex...
在本文中,我们将深入探讨Flex4和Adobe Integrated Runtime (AIR)如何结合,实现自定义窗口功能,包括窗口最小化到托盘以及在后台运行的能力。 Flex4是ActionScript 3.0上的一个开发框架,它提供了丰富的组件库和...
在本文中,我们将深入探讨Adobe Integrated Runtime (AIR) 中的`SystemTrayIcon`功能,以及如何使用它来创建和管理应用程序的系统托盘图标。系统托盘图标是桌面应用程序中一个常见且实用的特性,它允许用户在任务栏...
1. **系统托盘图标**:在桌面应用中,系统托盘图标允许用户将应用程序最小化到任务栏的系统通知区域,以便在不使用时隐藏主界面,但仍保持应用程序运行。在Flex中,可以通过使用NativeApplication类的systemTray属性...
3. 监听事件:添加事件监听器以处理用户在托盘菜单上的选择。例如,当用户点击“退出”时,调用`NativeApplication.nativeApplication.exit()`方法结束应用;点击“还原”时,调用`stage.displayState = ...
125.如何在操作系统任务栏上添加托盘菜单 126.如何触发操作系统的“开始”菜单 127.如何隐藏IE浏览器的右键菜单组 第4章 工具栏和状态栏 128.如何获取工具栏中的图标资源 129.如何在工具栏上设置背景图像 130.如何...
打印机后视图主要包含出纸托盘、电源接口、网络端口以及可能的USB端口,这些接口用于连接电脑或其他设备,进行数据传输和打印任务的执行。 控制面板视图通常包括主页屏幕布局,展示各种功能快捷方式,如打印、扫描...
创建系统托盘图标 第二十四章. FlexUnit单元测试(742) 24.1节. 创建应用FlexUnit框架的应用程序 24.2节. 运行FlexUnit单元测试 24.3节. 创建FlexUnit测试用例 24.4节. 添加测试用例到测试集合 24.5节. 在测试前后...