`
#天琪#
  • 浏览: 159417 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

关于AIR托盘

    博客分类:
  • AIR
阅读更多
该段代码实现了AIR应用程序生成任务栏图标,单击图标将应用程序激活并弹出在桌面的最上层。
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initApplication()">
<mx:Script>
    <![CDATA[
        import flash.display.*;
        import flash.net.URLRequest;
        import mx.controls.Alert;
        import mx.events.CloseEvent;
        import mx.core.WindowedApplication;
       
        private var dockImage:BitmapData; 
       private var MainStage:WindowedApplication;
        //初始化Application里调用此方法,完成上面的第一步:  
            public function initApplication():void{
            var loader:Loader=new Loader();  
                loader.contentLoaderInfo.addEventListener(Event.COMPLETE,prepareForSystray);//这里就是完成第一步的任务须,这个prepareForSystray就是对托盘的生在和菜单的控制  
                loader.load(new URLRequest("http://docs.google.com/locales/zh/CN/images/editor_docsslogo.gif"));//这里先要加载托盘图标的小图片  
            }

            //生成托盘
            public function prepareForSystray(event:Event):void{
            dockImage=event.target.content.bitmapData;
            if(NativeApplication.supportsSystemTrayIcon){
                setSystemTrayProperties();//设置托盘菜单的事件

            }
        }

/**
* Windows系统设置系统栏图标,属性
*
*/
private function setSystemTrayProperties():void{
var icon : SystemTrayIcon = NativeApplication.nativeApplication.icon as SystemTrayIcon;
            icon.tooltip = "TurboSquid squidword";  
            icon.addEventListener(MouseEvent.CLICK, undock);
stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, displayStageChangeHandler);

stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGE, function (e : Event) : void {
trace(1);
});
}

/**
* 最小化
*
*/
private function displayStageChangeHandler(event:NativeWindowDisplayStateEvent):void
{
trace("before"+event.beforeDisplayState);
trace("after"+event.afterDisplayState);
if(event.afterDisplayState == NativeWindowDisplayState.MINIMIZED)
{
//event.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;//设置本地程序窗体可见  
            trace(stage.nativeWindow.displayState);
           //stage.nativeWindow.orderToFront();//设置本地程序窗体到最前端  
            NativeApplication.nativeApplication .icon.bitmaps = [];//将托盘图标清空  
        }  
]]>
</mx:Script>

</mx:WindowedApplication>

总结1:当应用程序的显示状态(最大化,最小化,正常等)发生改变里会触发NativeWindowDisplayStateEvent事件,该事件有两个常量,一个是DISPLAY_STATE_CHANGE ,一个是DISPLAY_STATE_CHANGING,CHANGING是指状态正在改变,CHANGE是状态已经改变完成,所以NativeWindowDisplayStateEvent.preventDefault应该写在DISPLAY_STATE_CHANGING事件机制中,如果写在DISPLAY_STATE_CHANGE事件机制里,再执行最小化,将会出现这样一种状况,桌面将会出现该应用程序的任务栏图标及停靠图标。然后在激活应用程序的过程中,stage.nativeWindow.orderToFront()方法不起作用,原因就在于orderToFront/Back...等等方法在应用程序处于隐藏及最小化的状态下无效。这个时候的应用程序就处于最小化状态。如果不写orderToFront()方法应用程序还原时就会还原到当初最小化的时候在桌面所处的层次。使用orderTo...决定程序的深度。
总结2:想要修改一段代码,可能需要将其还原到原来的状态,这个时候先拷贝一份,再在拷贝上修改,这样会方便很多,还有就是增加代码的可读性



有高手指导就是好啊~~~~~~~
分享到:
评论

相关推荐

    Flex3Air最小化到系统托盘

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

    FLEX提高篇--------AIR应用程序的托盘及托盘菜单的制作

    标题 "FLEX提高篇--------AIR应用程序的托盘及托盘菜单的制作" 指向的是一个关于Adobe Integrated Runtime (AIR)的高级教程,重点是如何在Flex应用中创建和使用系统托盘图标以及与之相关的托盘菜单。Flex是基于...

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

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

    AIR教程-AIR教程

    在本文中,我们将深入探讨Adobe AIR(Adobe Integrated Runtime)教程中的关键知识点,特别是关于创建右键菜单和系统托盘(Tray)功能的实现方法。Adobe AIR允许开发者构建跨平台的桌面应用程序,结合了Flash和Flex...

    air运行环境,air桌面运行环境

    关于Adobe AIR的关键知识点包括: 1. **跨平台性**:Adobe AIR支持Windows、Mac OS X以及Android和iOS等移动平台,使得开发人员可以一次编写,多处部署。 2. **技术栈**:AIR主要基于Web技术,如HTML、CSS和...

    AIR System Tray and Dock Example

    标题 "AIR System Tray and Dock Example" 提供了一个关键线索,表明我们要探讨的是关于Adobe Integrated Runtime (AIR)的应用程序,特别是如何在系统托盘或Dock区域实现功能。在计算机用户界面中,系统托盘通常位于...

    Flex4 Air 自定义窗口

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

    新浪AIR微博 v2.4.1

    微博AIR是基于Adobe AIR平台的新浪微博桌面客户端 【使用方法】第一步:安装 Adobe AIR 运行环境(已安装的用户请跳过)http://down.chinaz.com/soft/29198.htm第二步:安装 微博AIR 客户端(解压后运行.air文件) ...

    Adobe AIR 1.5 中文帮助手册

    AIR应用程序可以与用户的桌面环境深度集成,比如创建快捷方式、拖放操作、系统托盘图标等功能,提高了用户体验。 10. **错误处理和调试** Adobe AIR 1.5提供了强大的错误处理机制和调试工具,帮助开发者定位并...

    Adobe AIR安装文件

    2. **桌面集成**:AIR应用可以拥有桌面级别的功能,如拖放操作、系统托盘图标、本地文件访问和离线工作。 3. **丰富的用户界面**:利用ActionScript和Flash的图形能力,开发者可以创建具有丰富媒体和交互性的应用...

    AIR时钟(含源码)

    通过AIR SDK,开发者可以利用ActionScript 3.0进行编程,创建与本地操作系统深度集成的应用程序,比如访问文件系统、桌面通知、系统托盘等。"AirDater V1.00.air"这个文件很可能是AIR应用程序的打包文件,用户可以...

    Adobe AIR 经典案例2008 Adobe AIR Create Modify Reuse

    6. **桌面集成**:AIR应用程序可以与桌面环境深度集成,如拖放操作、系统托盘、通知等。书中的案例会展示如何利用这些功能提高用户体验。 7. **离线应用和网络状态管理**:Adobe AIR支持离线应用,即使在网络断开的...

    flex 窗口托盘和全屏

    1. 引入所需的库:首先,在项目中引入`air.system.TrayIcon`类,这是实现窗口托盘的关键。 2. 创建TrayIcon对象:在Flex应用程序的初始化阶段,创建一个TrayIcon实例,并设置其图标和菜单项。菜单项可以包含“退出”...

    新浪微博air v1.14.1.zip

    微博AIR是基于Adobe AIR平台的新浪微博桌面客户端   【使用方法】 第一步:安装 Adobe AIR 运行环境(已安装的用户请跳过)http://down.chinaz.com/soft/29198.htm...右键点托盘里的图标,选择"注销",重新登录即可。

    AIR runtime 环境 1.5

    6. **桌面集成**:AIR 1.5支持创建桌面快捷方式、系统托盘图标等功能,使应用程序更好地融入用户桌面环境。 7. **数据库支持**:内建SQLite数据库,允许应用程序存储和管理大量结构化数据。 8. **安全和权限管理**...

    AIR systemTrayIcon sample code

    在本文中,我们将深入探讨Adobe Integrated Runtime (AIR) 中的`SystemTrayIcon`功能,以及如何使用它来创建和管理应用程序的系统托盘图标。系统托盘图标是桌面应用程序中一个常见且实用的特性,它允许用户在任务栏...

    SinaTair(微博air客户端)免费下载 v1.67.zip

    最小化时会常驻系统托盘,气泡提示最新微博、评论、私信。让您在工作、聊天、看球、游戏的同时,享受微博。   SinaTair新浪微博桌面客户端 v1.67 更新日志: 功能优化 修复Bugs   A5源码友情提示:...

Global site tag (gtag.js) - Google Analytics