Översikt över HTML-miljön

Adobe AIR 1.0 och senare

Adobe AIR innehåller en komplett webbläsarliknande JavaScript-miljö med ett HTML-återgivningstillägg, en dokumentobjektmodell och en JavaScript-tolk. JavaScript-miljön representeras av AIR-klassen HTMLLoader. I HTML-fönster innehåller ett HTMLLoader-objekt allt HTML-innehåll, och det finns i sin tur inuti ett NativeWindow-objekt. I SWF-innehåll kan klassen HTMLLoader, som utökar klassen Sprite, läggas till i visningslistan för en scen som alla andra visningsobjekt. Klassens egenskaper i Adobe® ActionScript® 3.0 beskrivs i Skripta AIR HTML-behållaren och i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen. I Flex-ramverket placeras AIR-klassen HTMLLoader i en mx:HTML-komponent. mx:HTML-komponenten utökar klassen UIComponent så att den kan användas direkt med andra Flex-behållare. JavaScript-miljön i mx:HTML-komponenten är annars identisk.

Om JavaScript-miljön och dess förhållande till AIR-värden

I bilden nedan visas sambandet mellan JavaScript-miljön och AIR-körningsmiljön. Även om bara ett enda inbyggt fönster visas, kan ett AIR-program innehålla flera fönster. (Och ett enda fönster kan innehålla flera HTMLLoader-objekt.)

Visa grafik i full storlek
JavaScript-miljön har sina egna Document- och Window-objekt. JavaScript-koden kan samverka med AIR-körningsmiljön genom egenskaperna runtime, nativeWindow och htmlLoader. ActionScript-koden kan samverka med JavaScript-miljön genom egenskapen window för ett HTMLLoader-objekt, som är en referens till JavaScript-objektet Window. Både ActionScript- och JavaScript-objekt kan dessutom avlyssna händelser som skickas av både AIR- och JavaScript-objekt.

Egenskapen runtime ger tillgång till AIR API-klasser, så att du kan skapa nya AIR-objekt och få tillgång till klassmedlemmar (kallas även för statiska medlemmar). När du vill få tillgång till ett AIR-API lägger du till namnet på klassen, med paketet, i egenskapen runtime. Om du till exempel vill skapa ett File-objekt använder du programsatsen:

var file = new window.runtime.filesystem.File();
Obs! AIR SDK innehåller en JavaScript-fil, AIRAliases.js, som definierar mer praktiska alias för de flesta vanliga AIR-klasser. När du importerar den här filen kan du använda den kortare formen air.Class i stället för window.runtime.package.Class. Du kan till exempel skapa File-objektet med new air.File().

Objektet NativeWindow innehåller egenskaper som styr skrivbordsfönstret. Från en HTML-sida får du tillgång till det innehållande NativeWindow-objektet med egenskapen window.nativeWindow.

HTMLLoader-objektet innehåller egenskaper, metoder och händelser som styr hur innehållet läses in och återges. Från en HTML-sida får du tillgång till det överordnade HTMLLoader-objektet med egenskapen window.htmlLoader.

Viktigt! Det är bara sidor som installeras som en del av programmet som har egenskaperna htmlLoader, nativeWindow eller runtime och bara när de läses in som ett dokument på den översta nivån. Dessa egenskaper läggs inte till när dokumentet läses in i en bildruta eller iframe. (Ett underordnat dokument kan få tillgång till dessa egenskaper i det överordnade dokumentet så länge det finns i samma säkerhetssandlåda. Ett dokument som till exempel läses in i en bildruta har åtkomst till egenskapen runtime för dess överordnade via parent.runtime.)

Om säkerhet

AIR kör all kod i en säkerhetssandlåda baserat på ursprungsdomänen. Programinnehåll, som begränsas till innehåll som läses in från programinstallationskatalogen, placeras i sandlådan application. Det är bara HTML och JavaScript som körs i den här sandlådan som kan få åtkomst till körningsmiljön och AIR-API:erna. Samtidigt blockeras den mest dynamiska utvärderingen och körningen av JavaScript i sandlådan application efter att alla hanterare för sidhändelsen load har returnerats.

Du kan mappa en programsida till en sandlåda som inte är en application-sandlåda genom att läsa in sidan i bildrutan eller en iframe och ställa in AIR-specifika sandboxRoot- och documentRoot-attribut för bildrutan. Genom att ställa in värdet sandboxRoot på den faktiska fjärrdomänen, kan du aktivera sandlådeinnehåll till att korsskripta innehållet i den domänen. Att mappa sidor på det här sättet kan vara användbart när du läser in och skriptar fjärrinnehåll, till exempel i ett kombinationsprogram.

Ett annat sätt att tillåta programinnehåll och annat innehåll att korsskripta varandra, och det enda sättet att ge icke programbaserat innehåll åtkomst till AIR-API:er, är att skapa en sandlådebrygga. Med en brygga av typen överordnad-till-underordnad kan innehåll i en underordnad bildruta, iframe eller fönster få åtkomst till bestämda metoder och egenskaper som definieras i sandlådan application. Med en brygga av typen underordnad-till-överordnad kan programinnehåll få åtkomst till bestämda metoder och egenskaper som definieras i sandlådan för den underordnade. Du skapar sandlådebryggor genom att ställa in egenskaperna parentSandboxBridge och childSandboxBridge för fönsterobjektet. Mer information finns i HTML-säkerhet i Adobe AIR och Bildrute- och iframe-element i HTML.

Om plug-iner och inbäddade objekt

AIR har stöd för plug-inen Adobe® Acrobat®. Användarna måste ha Acrobat eller Adobe® Reader® 8.1 (eller senare) för att kunna visa PDF-innehåll. Objektet HTMLLoader tillhandahåller en egenskap som kontrollerar om användarens system kan visa PDF. SWF-filsinnehållet kan också visas i HTML-miljön, men denna funktion är inbyggd i AIR och använder inte någon extern plug-in.

Inga andra Webkit-plugin-program stöds i AIR.