转http://hi.baidu.com/half_cup_coffee/blog/item/0457a3dd517127d48c1029a0.html
AIR也像其它桌面应用程序一样,可以为其添加系统托盘图标。
网上此类文章较多,这里简要说明一下,并列出步骤,以及关键代码

简要说明
1.针对托盘图标的操作即对当前AIR应用的nativeApplication.icon属性的相关操作,例如bitmaps,menu属性
2.对于Windows和Mac系统,nativeApplication.icon的实例对象是不一样的,Windows返回的是SystemTrayIcon对象,而Mac(苹果系统)返回的是DockIcon对象(这里以Windows系统为例)
3.添加图标到系统托盘,只需要设置当前AIR应用的nativeApplication.icon.bitmaps属性,就可以在系统托盘看到图标,但是这时还没有任何事件响应,需要进一步处理
4.添加系统托盘的左键单击事件,这种情况一般就是恢复窗口到正常状态
为SystemTrayIcon添加MouseEvent.CLICK事件
5.添加系统托盘图标的右键事件,这里一般是个菜单列表,例如打开、退出等。
需要设置SystemTrayIcon的menu属性,这里需要说明的是
6.nativeWindow.visible控制了AIR应用在任务栏上(不是系统托盘)的图标显示

添加系统托盘图标步骤
1.最小化事件时添加创建系统托盘图标,可直接添加到一个按钮的CLICK事件来测试
//最小化到系统托盘处理
private function dockHandler():void{
    this.nativeWindow.visible = false;
    //添加任务栏图标
    addSysTrayIcon();
}

[Embed(source='assets/AIRApp_16.png')]
private var icon16:Class;
private function addSysTrayIcon():void{
    //icon16是一个图片文件,大小为16*16
    this.nativeApplication.icon.bitmaps = [new icon16()];
    if(NativeApplication.supportsSystemTrayIcon){
        var sti:SystemTrayIcon = SystemTrayIcon(this.nativeApplication.icon);
        //创建菜单列表
        sti.menu = createSysTrayMenu();
        //单击系统托盘图标时恢复窗口
        sti.addEventListener(MouseEvent.CLICK,restoreFromSysTrayHandler);
    }
}

2.创建系统托盘图标上下文菜单
private function createSysTrayMenu():NativeMenu{
    var menu:NativeMenu = new NativeMenu();
    var labels:Array = ["打开","","退出程序"];
    var names:Array = ["mnuOpen","mnuSep1","mnuExit"];
    for (var i:int = 0;i<labels.length;i++){
        //如果标签为空的话,就认为是分隔符
        var menuItem:NativeMenuItem = new NativeMenuItem( labels[i],labels[i]=="");
        menuItem.name = names[i];
        menuItem.addEventListener(Event.SELECT,sysTrayMenuHandler );//菜单处理事件
        menu.addItem( menuItem );               
    }

    return menu;
}

3.添加系统托盘菜单事件,根据菜单名称来处理
private function sysTrayMenuHandler(event:Event):void{
    switch(event.target.name){
        case "mnuOpen"://打开菜单
            undockHandler();
            break;
        case "mnuExit"://退出菜单
            exitHandler();
            break;
    }

}

4.从系统托盘恢复到任务栏
private function undockHandler():void{
    this.nativeWindow.visible = true;
    this.nativeApplication.icon.bitmaps = [];
    //窗口提到最前面
    this.nativeWindow.orderToFront();
    //激活当前窗口
    this.activate();
}

5.退出程序的菜单事件
private function exitHandler():void{
    this.exit();
}

以上为添加AIR图标的一些关键之处,仅供参考

FLEX AIR添加系统托盘图标步骤相关推荐

  1. linux qt 添加托盘图标,Qt 添加程序图标和系统托盘图标

    添加程序图标 第一种方法: 1.创建程序的时候,选择添加默认图标 2.替换程序目录下的ico文件,编译生成即可. 第二种方法: 比较适合一开始没有添加程序图标的情况 1.项目右键-->添加--& ...

  2. win10系统托盘图标不见了_手把手传授win10系统英特尔核芯显卡托盘图标不见了的步骤...

    今天小编分享一下win10系统英特尔核芯显卡托盘图标不见了问题的处理方法,在操作win10电脑的过程中常常不知道怎么去解决win10系统英特尔核芯显卡托盘图标不见了的问题,有什么好的方法去处理win1 ...

  3. xp系统计算机怎么连接到网络打印机,WinXP电脑如何添加网络打印机?WinXP添加网络打印机的步骤...

    打印机设备中如果提供网络接口,就可以通过网络连接到电脑上,其他电脑也可以通过网络共享访问打印机.不过在这之前我们要先在这个电脑上添加网络打印机,具体如何操作呢?本文就来介绍一下WinXP添加网络打印机 ...

  4. C#下实现动态系统托盘图标

    Visual C#是微软公司推出的下一代程序开发语言,是微软.Net框架中的的一个重要组成部分.微软的.Net平台堪称为新一代的互联网平台.对于技术开发人员来说,.Net平台的两大特性是非常卓越的,首 ...

  5. C#实现动态系统托盘图标

    Visual C#是微软公司推出的下一代程序开发语言,是微软.Net框架中的的一个重要组成部分.微软的.Net平台堪称为新一代的互联网平台.对于技术开发人员来说,.Net平台的两大特性是非常卓越的,首 ...

  6. 隐藏Windows系统托盘图标

    曾经写过一篇Windows下的任务栏图标编程 ,其实那篇文章讲的是如何将我们自己的程序最小化到托盘并进行操作的编程方法.前两天看到论坛 里有人讨论如何隐藏托盘图标,记得从前为朋友写过一个隐藏大智慧软件 ...

  7. 十个Flex/Air疑难杂症及解决方案简略

    十个Flex/Air疑难杂症及解决方案简略 转自http://blog.sban.us/40.html 最近去一家台企,对方给我出了十道"难道":在TileList中如果選擇檔過多 ...

  8. vb隐藏指定程序系统托盘图标_Windows环境设置系统托盘图标默认显示

    Windows环境设置系统托盘图标默认显示 背景 QQ.微信等IM软件通常都会在任务栏系统托盘处添加一个图标,用于提示新消息或方便将隐藏的窗口显示出来,但Windows有默认的设置,将不常用的图标隐藏 ...

  9. SAP License:SAP安装前添加虚拟网卡步骤

    之前有网友咨询SAP如何添加虚拟网卡?今天小编整理了SAP安装前添加虚拟网卡步骤进行分享,添加虚拟网卡步骤如下所示: 打开控制面版中的设备管理器 点击菜单栏上的[操作(A)] 选择[添加过时硬盘件] ...

最新文章

  1. 全网最细 | 21张图带你领略集合的线程不安全
  2. 将Datatable一分为二
  3. BigDecimal add方法问题:调用add后,求和结果没变
  4. 梯度下降 gradient descent
  5. javascript初学者必须注意的7个细节
  6. php phpanalysis2.0,使用phpAnalysis打造PHP应用非侵入式性能分析器
  7. windows7计算机管理,windows7计算机管理
  8. 安装ps时无法验证订阅状态_关于宝马B38/B48发动机无法启动的技术通报
  9. textarea还剩余字数统计
  10. 内网渗透(一)——本机信息收集
  11. Python语音识别终极指南(收藏)
  12. 关于计算机取代学校的英语作文,关于网络教室将取代传统的教室英语作文
  13. xp仿ios主题_三合一xp仿苹果电脑桌面主题
  14. U盘不能分区,不能格式化,解决方案
  15. DevOps亚马逊AWS相关介绍
  16. 二、lintcode刷题记录--二叉树的路径和
  17. 系统管理员设置了系统策略,禁止进行此安装。解决方案
  18. 【李佳辉_周报_2022.10.30】
  19. 用Johnson-Trotter算法生成排列!
  20. java优化方法_JAVA程序性能优化的10个简单方法

热门文章

  1. 797. 差分(有图解)
  2. Win10+VS2017+Ceres-Solver-1.13.0配置
  3. mysql之使用python操作mysql需要commit的情况
  4. ubuntu之安装显卡驱动
  5. zlib 加密 java_JAVA自带Zlib+base64位压缩加密和解压解密
  6. python测试udp端口_zabbix上使用外部检查的方式监测公网tcp/udp端口开放情况
  7. 为什么order by 数据都一样_每一只股票的开盘价格都不一样,为什么会这样?
  8. Linux里隐藏的计算器,你知道它的奥秘吗?
  9. laravel validate 设置为中文(验证提示为中文)
  10. git无法上传大文件