在您的清單(-app.xml)文件中將systemChrome設置爲none且透明爲true。可見屬性無關緊要,並且默認值爲false,因此無視它。
你必須調整它,導入缺失的類,等等......你也可以將它作爲一個mxml組件,並在根標記上設置可見和啓用false。用你需要的圖標填充trayImages數組。
p
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();
}
}
}
感謝您的答覆,但我不希望有自定義窗口鉻 - 我在尋找擺脫完全窗口(並只顯示一個托盤圖標,但我想出了托盤圖標部分)。我最近的設置是在初始化時設置'window.visible = false',但是這會導致窗口短暫閃爍,我想盡可能避免這種情況。 – Alan 2010-10-05 04:03:42
在您的airAppName-app.xml文件中,將「systemChrome」設置爲「none」,將「transparent」設置爲「true」,將「visible」設置爲「false」。 – boring 2010-10-05 04:27:04
我實際上剛剛在-app.xml文件中發現了「visible」選項並且很興奮,但由於某種原因,AIR似乎忽略了它 - 儘管設置了您提到的所有內容,但它仍然顯示了窗口。我正在使用AIR 2.0,也許它已被棄用或者什麼?無論如何,我剛剛發現在我的中添加'visible =「false」'工作,所以終於解決了。謝謝! –
Alan
2010-10-05 05:05:29