`

FLEX AIR添加系统托盘图标步骤

air 
阅读更多
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中文官方帮助文档

    Flex Air是中国Adobe公司开发的一款基于Flash技术的富互联网应用程序(RIA)开发平台,它允许开发者创建可以在桌面运行的跨平台应用程序。本“Flex Air中文官方帮助文档”是开发者的重要参考资料,详细介绍了Flex ...

    Flex最小化到系统托盘及托盘图标的右键

    本文将详细介绍如何实现Flex应用最小化到系统托盘以及托盘图标的右键菜单功能。 首先,我们需要引入SystemTray类,这是Flex提供用来管理系统托盘的组件。在Flex SDK中,这个类位于mx.managers.systemClasses目录下...

    Flex3Air最小化到系统托盘

    "Flex3Air最小化到系统托盘"这个主题主要涉及的是如何在Flex3Air应用中实现窗口最小化功能,并将应用程序图标隐藏到操作系统的系统托盘区域,而不是传统的任务栏上。这一功能在很多桌面应用中都很常见,比如电子邮件...

    用Flex AIR 做一个类似QQ消息提示在系统托盘闪烁图标

    标题中的“用Flex AIR 做一个类似QQ消息提示在系统托盘闪烁图标”表明了这个项目是关于使用Adobe Flex和Adobe Integrated Runtime (AIR) 开发一个功能,该功能模仿了腾讯QQ的消息提示方式,即当有新消息时,系统托盘...

    flex air 导出 excel

    以下是实现Flex Air导出Excel的步骤: 1. **服务器端准备**:在服务器端安装Apache POI库,并编写一个接口,该接口接收来自Flex Air的数据并使用POI创建Excel文件。数据应以合适的数据结构(如二维数组)传递,以...

    Flex AIR物业管理系统

    《Flex AIR物业管理系统详解》 Flex AIR物业管理系统是一款基于Adobe AIR技术开发的桌面应用程序,它为物业管理提供了全面的解决方案。Adobe AIR(Adobe Integrated Runtime)允许开发者利用Flash、Flex或HTML5技术...

    flexair网页截图工具

    FlexAir网页截图工具是一款专为用户设计的高效网页捕获软件,它允许用户方便快捷地截取并保存网页内容。这款工具集成了多种实用功能,旨在优化网页截图体验,提高工作效率。 在使用FlexAir网页截图工具时,首先需要...

    flex air 本地文件管理器

    《Flex Air 本地文件管理器:打造Windows系统式的文件操作体验》 在现代软件开发领域,Adobe Flex Air技术提供了一种强大的跨平台解决方案,使得开发者能够构建与桌面系统深度集成的应用程序。尤其在本地文件管理...

    flex air开发中文教程

    Flex Air开发中文教程是一本专为富媒体软件开发者设计的实战型指南,旨在教会读者如何利用Adobe Flex技术来构建和部署Adobe Integrated Runtime (AIR)应用程序。Flex是基于ActionScript和MXML的开源框架,用于创建...

    Flex4 Air 自定义窗口

    在本文中,我们将深入探讨Flex4和Adobe Integrated Runtime (AIR)如何结合,实现自定义窗口功能,包括窗口最小化到托盘以及在后台运行的能力。 Flex4是ActionScript 3.0上的一个开发框架,它提供了丰富的组件库和...

    flex Air 打包

    AIR提供了与操作系统更深入的交互能力,如访问本地文件系统、桌面通知和离线数据存储等。 2. **Flex SDK**:Flex SDK是用于创建Flex应用程序的免费开源工具集。它包含编译器、命令行工具和Flex框架库,用于构建Flex...

    flex air 博客管理系统

    Flex Air博客管理系统是一款基于Adobe Flex和Adobe AIR技术开发的桌面应用程序示例,它允许用户在本地环境下创建、编辑和管理博客内容。这个系统是学习Flex和AIR集成应用的理想平台,可以展示如何利用这两种技术实现...

    flex air 单机版俄罗斯方块 flexbuilder项目文件

    flex air 单机版俄罗斯方块 小游戏 flexbuilder项目文件

    flex4.6 air 读写文本文件

    通过以上步骤,你就能够在Flex 4.6和AIR环境中实现读写文本文件的功能。这只是一个基础示例,实际应用中可能需要考虑更多的细节,比如文件编码、多线程操作、异步处理等。但作为新手入门,掌握这些基础知识已经足够...

    flex AIR 工程自动更新测试

    Flex AIR工程自动更新测试涉及到的是Adobe Integrated Runtime (AIR)应用程序的升级机制,这对于保持软件的最新状态和提供无缝用户体验至关重要。在Flex开发中,我们利用Adobe AIR SDK来创建跨平台的桌面应用程序。...

    linux的flexair例子

    是一个linux环境下运行的flex air例子,有源码.

    Flex Air音乐播放器源码

    Adobe Flex是用于构建富互联网应用程序(RIA)的框架,而Adobe AIR则允许这些应用程序在用户的桌面系统上本地运行,提供了更丰富的交互体验。 ActionScript是Flex的核心编程语言,是一种面向对象的脚本语言,与...

    Flex Air 学习资料\01.Flex概述.rar

    此“Flex Air 学习资料\01.Flex概述.rar”压缩包文件包含了对Flex Air的基本介绍,特别是通过“01.Flex概述.swf”这个文件,很可能是以互动式的Flash形式提供了Flex的基础知识。 1. **Flex概述**:Flex是基于...

    Adoe FlexAir教程

    Adobe Flex Air教程是针对.NET程序员的一份详细指南,旨在教授如何使用Adobe Flex技术来构建跨平台的桌面应用程序。Flex Air是Adobe Integrated Runtime(AIR)的一部分,允许开发者利用Flex框架和ActionScript语言...

Global site tag (gtag.js) - Google Analytics