问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求个AIR的右键菜单

发布网友 发布时间:2022-11-27 22:49

我来回答

1个回答

热心网友 时间:2023-10-19 05:36

右键菜单:
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; //初始化Application里调用此方法,完成上面的第一步: public function initApplication():void{ var loader:Loader=new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,prepareForSystray);//这里就是完成第一步的任务须,这个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);//弹出自定义的选择框, 关于Alert的详细用法,参考官方文档或我前面的相关文章. } //根据用户的选择来判断做什么,这里选择是就是关闭,选择否(Mini)就是最小化到托盘. 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");//生成OPEN菜单项 var exitNativeMenuItem:NativeMenuItem = new NativeMenuItem("Exit");//同理 openNativeMenuItem.addEventListener(Event.SELECT, undock); exitNativeMenuItem.addEventListener(Event.SELECT, closeApp);//添加EXIT菜单项事件 menu.addItem(openNativeMenuItem); menu.addItem(new NativeMenuItem("",true));//separator 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(); } 不知道 是不是这个 累
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有释放证明书可以开无犯罪证明吗 刑满释放人员入党需要公安机关出具怎样证明与无罪证明一样的作用 交通事故私了是要注意哪些问题 【私了注意事项】车祸哪些情况不能私了 交通事故私了要注意什么 私了交通事故要注意的问题 wifi6跟wifi5的区别有什么? 只有吉祥寺是想住的街道吗 演员表 《吉祥寺真的是你想住的街道吗》:每个人都会找到适合自己的街道 日剧《只有吉祥寺是想住的街道吗》为何选择“生きていたん 如何评价日剧《只有吉祥寺是想住的街道吗?》? air playit中如何删除air target中的内容? 龙华哪里有oppo售后 龙华观澜哪里有oppo OPPO在深圳宝安区观澜镇的客服中心在哪里? 为什么哆啦A梦令人感动? 按揭房能卖给别人吗? 三月文明礼貌月黑板报的设计内容及精美图片 万能的酒朋,有熟悉蒸汽锅炉(小型)蒸汽发生器的吗? 以文明礼貌月为主题的黑板报图片 台州金清镇 有代办营业执照的吗 台州市椒江区前丁路办营业执照地址 山东俗话 石榴开花再回来什么意思 有关微信恢复手机通讯录的问题 微信聊天记录删除了手机怎么恢复不了 我手机上通讯录联系人无意中少了些,菜单中多了个通讯录(上标有360)图标,怎么也恢复不了个别以前的 洛阳乐悦商贸有限公司怎么样? 上海乐悦咖啡有限公司怎么样? 乐悦的繁体字 乐悦可组什么词 广西旅发乐悦酒店在良庆区什么社区 airprint是指什么 air-conditioner怎么读 AI是哪个航空公司,印度航空标志 莱州都有什么地方处理违章 莱州市金城镇四中队现在处理违章吗 莱州190km 100m违章在那里? 三星笔记本电脑如何调节对比度? 用54颗全彩3W的LED灯做舞台面光效果怎么样? 一个农村舞台需要配套哪些照明设施 舞台灯光54颗3w帕灯插电220v为什么不亮 舞台54颗led灯遥控器丢了怎么能调 我想问一下忏悔三昧可以消除业障吗? 杭州田宫模型店地址 玉州区小比例车模模型店地址在哪里 什么是“面——点结构地址编码模型” 孩子倔强如何教育 孩子倔强怎么教育 抑郁免费送药是不是就是逍遥丸 安装官方的PR2019,破解时复制粘贴补丁后打开软件出现“无法找到入口”怎么解决 汽车坠河后为什么人逃不出来? 那个大佬有音乐《莫问一生》mp3百度云资源