I många operativsystem finns ett aktivitetsfält (till exempel Dock i Mac OS X) som kan innehålla en ikon som representerar ett program. I Adobe® AIR® finns ett gränssnitt för att interagera med programikoner i aktivitetsfältet via egenskapen
NativeApplication.nativeApplication.icon
.
Om aktivitetsfältsikoner
I AIR skapas
NativeApplication.nativeApplication.icon
-objektet automatiskt. Objekttypen är antingen DockIcon eller SystemTrayIcon, beroende på operativsystemet. Du kan ta reda på vilka av dessa InteractiveIcon-underklasser som AIR stöder på det aktuella operativsystemet med hjälp av egenskaperna
NativeApplication.supportsDockIcon
och
NativeApplication.supportsSystemTrayIcon
. InteractiveIcon-basklassen innehåller egenskaperna
width
,
height
och
bitmaps
. Med dessa egenskaper kan du ändra bilden som används för ikonen. Om du använder egenskaper som är specifika för DockIcon eller SystemTrayIcon på fel operativsystem genereras dock ett körningsfel.
Om du vill välja en bild eller ändra bilden som används för en ikon skapar du en array som innehåller en eller flera bilder och tilldelar den till egenskapen
NativeApplication.nativeApplication.icon.bitmaps
. Storleken på aktivitetsfältsikonerna kan variera mellan olika operativsystem. Du kan undvika att bildkvaliteten försämras på grund av skalning genom att lägga till flera storlekar på bilderna i
bitmaps
-arrayen. Om du lägger till fler än en bild väljs automatiskt den storlek som bäst matchar aktivitetsfältsikonens aktuella visningsstorlek, och bilden skalas vid behov. I följande exempel anges bilden för en aktivitetsfältsikon med två bilder:
NativeApplication.nativeApplication.icon.bitmaps =
[bmp16x16.bitmapData, bmp128x128.bitmapData];
Om du vill ändra ikonbilden tilldelar du en array som innehåller den nya bilden (eller bilderna) till egenskapen
bitmaps
. Du kan animera ikonen genom att ändra bilden som svar på en
enterFrame
- eller
timer
-händelse.
Om du vill ta bort ikonen från meddelandeområdet i Windows och Linux, eller återställa ikonernas standardutseende i Mac OS X, tilldelar du en tom array till
bitmaps
:
NativeApplication.nativeApplication.icon.bitmaps = [];
Dockningsikoner
AIR stöder dockningsikoner när
NativeApplication.supportsDockIcon
har värdet
true
. Egenskapen
NativeApplication.nativeApplication.icon
representerar programikonen i Dock (inte en fönsterikon).
Obs!
AIR stöder inte ändring av fönsterikoner i Dock i Mac OS X. Dessutom gäller endast ändringar i programikonerna i Dock när ett program körs. Ikonen återfår sitt normala utseende när programmet avslutas.
Ikonmenyer i Dock
Du kan lägga till kommandon på standardmenyn i Dock genom att skapa ett NativeMenu-objekt som innehåller kommandona och tilldela det till egenskapen
NativeApplication.nativeApplication.icon.menu
. Objekten på menyn visas ovanför alternativen på standardmenyn i Dock.
Studsa dockan
Du kan studsa dockningsikonen genom att anropa metoden
NativeApplication.nativeApplication.icon.bounce()
. Om du anger Informational för parametern
bounce() priority
studsar ikonen en gång. Om du anger Critical studsar ikonen tills användaren aktiverar programmet. Konstanter för parametern
priority
definieras i klassen NotificationType.
Obs!
Ikonen studsar inte om programmet redan är aktivt.
Dockningsikonhändelser
När du klickar på dockningsikonen skickar NativeApplication-objektet en
invoke
-händelse. Om programmet inte är igång startas det automatiskt. I annat fall skickas
invoke
-händelsen till den programinstans som körs.
Systemfältsikoner
AIR stöder systemfältsikoner när
NativeApplication.supportsSystemTrayIcon
är
true
, vilket för närvarande är fallet endast på Windows och de flesta Linux-distributioner. På Windows och Linux visas systemfältsikoner i aktivitetsfältets meddelandeområde. Ingen ikon visas som standard. Om du vill visa en ikon tilldelar du en array som innehåller BitmapData-objekt till egenskapen
bitmaps
för ikonen. Om du vill ändra ikonbilden tilldelar du en array som innehåller de nya bilderna till
bitmaps
. Om du vill ta bort ikonen anger du värdet
null
för
bitmaps
.
Ikonmenyer i systemfältet
Du kan lägga till en meny till systemfältsikonen genom att skapa ett NativeMenu-objekt och tilldela det till egenskapen
NativeApplication.nativeApplication.icon.menu
(ingen standardmeny tillhandahålls i operativsystemet). Du öppnar systemfältsikonens meny genom att högerklicka på ikonen.
Knappbeskrivningar för systemfältsikoner
Du lägger till en knappbeskrivning för en ikon genom att ange egenskapen tooltip:
NativeApplication.nativeApplication.icon.tooltip = "Application name";
Händelser för systemfältsikoner
Det SystemTrayIcon-objekt som egenskapen NativeApplication.nativeApplication.icon refererar till skickar en ScreenMouseEvent för
click
-,
mouseDown
-,
mouseUp
-,
rightClick
-,
rightMouseDown
- och
rightMouseUp
-händelser. Du kan använda dessa händelser tillsammans med en ikonmeny så att användarna kan interagera med ditt program när det saknar synliga fönster.
Exempel: Skapa ett program utan fönster
I följande exempel skapas ett AIR-program som har en systemfältsikon, men inga synliga fönster. (Egenskapen
visible
för programmet kan inte vara angivet till
true
i programbeskrivningen eftersom fönstret då visas när programmet startas.)
package
{
import flash.display.Loader;
import flash.display.NativeMenu;
import flash.display.NativeMenuItem;
import flash.display.NativeWindow;
import flash.display.Sprite;
import flash.desktop.DockIcon;
import flash.desktop.SystemTrayIcon;
import flash.events.Event;
import flash.net.URLRequest;
import flash.desktop.NativeApplication;
public class SysTrayApp extends Sprite
{
public function SysTrayApp():void{
NativeApplication.nativeApplication.autoExit = false;
var icon:Loader = new Loader();
var iconMenu:NativeMenu = new NativeMenu();
var exitCommand:NativeMenuItem = iconMenu.addItem(new NativeMenuItem("Exit"));
exitCommand.addEventListener(Event.SELECT, function(event:Event):void {
NativeApplication.nativeApplication.icon.bitmaps = [];
NativeApplication.nativeApplication.exit();
});
if (NativeApplication.supportsSystemTrayIcon) {
NativeApplication.nativeApplication.autoExit = false;
icon.contentLoaderInfo.addEventListener(Event.COMPLETE, iconLoadComplete);
icon.load(new URLRequest("icons/AIRApp_16.png"));
var systray:SystemTrayIcon =
NativeApplication.nativeApplication.icon as SystemTrayIcon;
systray.tooltip = "AIR application";
systray.menu = iconMenu;
}
if (NativeApplication.supportsDockIcon){
icon.contentLoaderInfo.addEventListener(Event.COMPLETE,iconLoadComplete);
icon.load(new URLRequest("icons/AIRApp_128.png"));
var dock:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;
dock.menu = iconMenu;
}
}
private function iconLoadComplete(event:Event):void
{
NativeApplication.nativeApplication.icon.bitmaps =
[event.target.content.bitmapData];
}
}
}
Obs!
När du använder Flex WindowedApplication-komponenten måste du ange attributet
visible
för WindowedApplication-taggen till
false
. Detta attribut åsidosätter inställningen i programbeskrivningen.
Obs!
I exemplet antas att programkatalogen innehåller bildfiler med namnen
AIRApp_16.png
och
AIRApp_128.png
i underkatalogen
icons
. (I AIR SDK finns exempel på ikonfiler som du kan kopiera till projektmappen.)
Ikoner och knappar i Aktivitetsfältet i Windows
Ikoner som representerar fönster visas vanligtvis i fönsterområdet i Aktivitetsfältet eller i Dock så att användarna enkelt kan få åtkomst till bakgrunder eller minimerade fönster. I Dock i Mac OS X visas både en ikon för ditt program och en ikon för varje minimerat fönster. Aktivitetsfälten i Microsoft Windows och Linux visar en knapp med programikonen och titeln för varje fönster av normaltyp i ditt program.
Markera fönsterknappen i Aktivitetsfältet
När ett fönster är i bakgrunden kan du meddela användaren att det har inträffat en händelse som rör fönstret. I Mac OS X kan du meddela användaren genom att studsa programikonen i Dock (se
Studsa dockan
). På Windows and Linux kan du markera knappen på aktivitetsfältet genom att anropa
notifyUser()
-metoden i NativeWindow-instansen. Parametern
type
som skickas till metoden anger hur viktigt meddelandet är:
-
NotificationType.CRITICAL
: fönsterikonen blinkar tills användaren placerar fönstret i förgrunden.
-
NotificationType.INFORMATIONAL
: fönsterikonen markeras genom att den ändrar färg.
Obs!
På Linux stöds endast meddelanden av informativ typ. Om du överför ett typvärde till funktionen
notifyUser()
får du samma resultat.
Följande programsats markerar fönsterknappen i Aktivitetsfältet:
stage.nativeWindow.notifyUser(NotificationType.CRITICAL);
Det händer ingenting om metoden
NativeWindow.notifyUser()
anropas i ett operativsystem som saknar stöd för fönstermeddelanden. Använd egenskapen
NativeWindow.supportsNotification
om du vill ta reda på om fönstermeddelanden stöds.
Skapa fönster utan knappar eller ikoner i Aktivitetsfältet
I operativsystemet Windows visas inte fönster som har skapats med typerna
utility
eller
lightweight
i Aktivitetsfältet. Osynliga fönster visas inte heller i Aktivitetsfältet.
Eftersom det ursprungliga fönstret har typen
normal
måste du antingen stänga det ursprungliga fönstret eller låta det vara osynligt för att kunna skapa ett program utan att några fönster visas i Aktivitetsfältet. Om du vill stänga alla fönster i programmet utan att avsluta programmet, anger du värdet
false
för NativeApplication-objektets
autoExit
-egenskap innan du stänger det sista fönstret. Om du vill förhindra att det ursprungliga fönstret överhuvudtaget visas, lägger du till
<visible>false</visible>
för programbeskrivningsfilens
<initalWindow>
-element (och försäkra dig om att inte
visible
-egenskapen har värdet
true
eller att metoden
activate()
för fönstret anropas).
I nya fönster som öppnas av programmet anger du
NativeWindowType.UTILITY
eller
NativeWindowType.LIGHTWEIGHT
för
type
-egenskapen för det NativeWindowInitOption-objekt som skickas till fönsterkonstruktorn.
I Mac OS X visas minimerade fönster i Dock. Du kan förhindra att den minimerade ikonen visas genom att dölja fönstret i stället för att minimera det. I följande exempel görs en lyssning efter en
nativeWindowDisplayState
-ändringshändelse, och händelsen avbryts om fönstret minimeras. I stället anges värdet
false
för fönstrets
visible
-egenskap med hanteraren:
private function preventMinimize(event:NativeWindowDisplayStateEvent):void{
if(event.afterDisplayState == NativeWindowDisplayState.MINIMIZED){
event.preventDefault();
event.target.visible = false;
}
}
Om ett fönster är minimerat i Dock i Mac OS X när du anger värdet
false
för egenskapen
visible
tas dockningsikonen inte bort. Användarna kan fortfarande visa fönstret igen genom att klicka på ikonen.
|
|
|