FLEX AIR添加系统托盘图标步骤
发布时间:2020-12-15 03:33:37 所属栏目:百科 来源:网络整理
导读:AIR也像其它桌面应用程序一样,可以为其添加系统托盘图标。 网上此类文章较多,这里简要说明一下,并列出步骤,以及关键代码 如果主程序 为 myAir.mxml? 打开myAir-app.xml,在第89-94行的文字如下:? !-- icon? image16x16/image16x16? image32x32/image32x
AIR也像其它桌面应用程序一样,可以为其添加系统托盘图标。
网上此类文章较多,这里简要说明一下,并列出步骤,以及关键代码
如果主程序 为 myAir.mxml?
打开myAir-app.xml,在第89-94行的文字如下:? <!-- <icon>? <image16x16></image16x16>? <image32x32></image32x32>? <image48x48></image48x48>? <image128x128></image128x128>? </icon> -->? 修改为:? <icon>? <image16x16>flower_16.png</image16x16>? <image32x32>flower_32.png</image32x32>? <image48x48>flower_48.png</image48x48>? <image128x128>flower_128.png</image128x128>? </icon>? 当然必须在 flex air工程的src 下面有 四个 图片文件 flower_16.png、flower_32.png、flower_48.png、flower_128.png;在添加图片时注意jpg格式的好像不行,其它的没试过,不过png是ok的 简要说明 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属性,这里需要说明的是
???? this.nativeWindow.visible = false; ???? //添加任务栏图标 ???? addSysTrayIcon(); ???? // 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); ???? } ???? 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; ???? switch(event.target.name){ ???? ???? case "mnuOpen"://打开菜单 ???? ????
???? undockHandler(); ???? ???? ???? break; ???? ???? case "mnuExit"://退出菜单 ???? ???? ???? exitHandler(); ???? ???? ???? break; ???? } ???? this.nativeWindow.visible = true; ???? this.nativeApplication.icon.bitmaps = []; ???? //窗口提到最前面 ???? this.nativeWindow.orderToFront(); ???? //激活当前窗口 ???? this.activate(); ???? this.exit();}以上为添加AIR图标的一些关键之处,仅供参考
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |