首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无窗口(非无铬) Adobe AIR应用程序

无窗口(非无铬) Adobe AIR应用程序
EN

Stack Overflow用户
提问于 2010-10-03 05:38:28
回答 2查看 1.6K关注 0票数 0

构建一个没有任何窗口(即只存在于系统托盘/dock中)的Adobe AIR应用程序的最佳方式是什么?我注意到Flash Builder中默认的基本标签是<s:WindowedApplication>,这似乎意味着会有一个窗口。

我应该只使用<s:WindowedApplication>并调用window.hide()吗?我看到了另一个基类<s:Application>,但我感觉更多的是用于在浏览器中运行的文件。似乎使用window.hide()会在应用程序启动时短暂地闪烁一个窗口,这可能会让用户感到困惑。然而,理想情况下,我也希望保留应用程序在需要时打开窗口的能力,或者也可以通过更新将应用程序从仅限托盘更改为窗口。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-04 12:32:32

您需要编辑app-config文件以启用透明chrome和visible = false。然后,您需要将WindowedApplication标记更改为并应用您的自定义皮肤。您需要为close等添加控制按钮,因为该功能在web-app中不存在(因为您已经更改了标签)。此外,您还需要添加拖动功能。如果你想让你的应用程序可调整大小,你也需要手动添加。

票数 1
EN

Stack Overflow用户

发布于 2011-07-08 10:07:44

在清单(-app.xml)文件中,将systemChrome设置为none并透明为true。visible属性是无关紧要的,而且默认值是false,所以忽略它。

你必须调整它,导入任何缺少的类,等等……您也可以将其作为mxml组件来执行,只需在根标记上将visible和enabled设置为false即可。在trayImages数组中填入你想要的图标。

P

代码语言:javascript
运行
复制
ackage{

import spark.components.WindowedApplication;

public class HiddenApplication extends WindowedApplication{


public function HiddenApplication(){
     super();
     enabled=false;
     visible=false;
var trayImages:Array;
    if(NativeApplication.supportsDockIcon||NativeApplication.supportsSystemTrayIcon){
                NativeApplication.nativeApplication.activate();
                var sep:NativeMenuItem = new NativeMenuItem(null,true);
                var exitMenu:NativeMenuItem = new NativeMenuItem('Exit',false);
                exitMenu.addEventListener(Event.SELECT,shutdown);
                var updateMenu:NativeMenuItem = new NativeMenuItem('Check for Updates',false);
                updateMenu.addEventListener(Event.SELECT,upDcheck);
                var prefsMenu:NativeMenuItem = new NativeMenuItem('Preferences',false);
                prefsMenu.addEventListener(Event.SELECT,Controller.showSettings);
                NativeApplication.nativeApplication.icon.addEventListener(ScreenMouseEvent.CLICK,showToolBar);
                    if(NativeApplication.supportsSystemTrayIcon){
                        trayIcon = SystemTrayIcon(NativeApplication.nativeApplication.icon);
                        setTrayIcons();
                        trayIcon.tooltip = "Some random tooltip text";
                        trayIcon.menu = new NativeMenu();
                        trayIcon.menu.addItem(prefsMenu);
                        trayIcon.menu.addItem(sep);
                        trayIcon.menu.addItem(updateMenu);
                        trayIcon.menu.addItem(exitMenu);
                    }
                    else{
                        dockIcon = DockIcon(NativeApplication.nativeApplication.icon);
                        setTrayIcons();
                        dockIcon.menu = new NativeMenu();
                        dockIcon.menu.addItem(prefsMenu);
                        dockIcon.menu.addItem(sep);
                        dockIcon.menu.addItem(updateMenu);
                        dockIcon.menu.addItem(exitMenu);
                    }
            }
            function setTrayIcons(n:Number=0):void{
                if(showTrayIcon&&(trayIcon||dockIcon)){
                    Controller.debug('Updating tray icon');
                    if(NativeApplication.supportsSystemTrayIcon){
                        trayIcon.bitmaps = trayImages;
                    }
                    else if(NativeApplication.supportsDockIcon){
                        dockIcon.bitmaps = trayImages;
                    }
                }
                else if(trayIcon||dockIcon) trayIcon.bitmaps = new Array(); 

        }
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3847634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档