|
Bronnen voor Flash CS4 |
AIR-toepassingen installeren en uitvoeren vanaf een webpaginaMet de functie voor naadloze installatie kunt u in een webpagina een SWF-bestand insluiten waarmee de gebruiker een AIR-toepassing kan installeren vanuit de browser. Als de runtime niet is geïnstalleerd, wordt deze geïnstalleerd via de functie voor naadloze installatie. Met de functie voor naadloze installatie kunnen gebruikers de AIR-toepassing installeren zonder het AIR-bestand op hun computer op te slaan. In de SDK van AIR is het bestand badge.swf opgenomen waarmee u de functie voor naadloze installatie eenvoudig kunt gebruiken. Zie AIR-toepassingen installeren met het bestand badge.swf voor meer informatie. Voor een demonstratie van het gebruik van de naadloze installatiefunctie raadpleegt u het artikel met snelstartvoorbeelden Een AIR-toepassing distribueren via het web (http://www.adobe.com/go/learn_air_qs_seamless_install_nl). Informatie over het aanpassen van het bestand voor naadloze installatie badge.swfNaast het bestand badge.swf in de SDK kunt u ook zelf een SWF-bestand voor gebruik in een browserpagina maken. Uw aangepaste SWF-bestand kan op de volgende manieren interageren met de runtime:
Deze functies worden mogelijk gemaakt door het oproepen van API's in een SWF-bestand op adobe.com: air.swf. In deze sectie wordt beschreven hoe u het bestand badge.swf gebruikt en aanpast en hoe u de API's van air.swf oproept vanuit uw eigen SWF-bestand. Een SWF-bestand dat in de browser wordt uitgevoerd, kan ook met een gestarte AIR-toepassing communiceren met behulp van de klasse LocalConnection. Zie Communicatie tussen toepassingen voor meer informatie. Belangrijk: De eindgebruiker kan de functies die in deze sectie worden beschreven (en de API's in het bestand air.swf) alleen gebruiken als Adobe® Flash® Player 9 update 3 is geïnstalleerd in de webbrowser op Windows of Mac OS. Op Linux vereist de naadloze installatiefunctie Flash Player 10 (versie 10,0,12,36 of hoger). U kunt code schrijven om de geïnstalleerde versie van Flash Player te controleren en de gebruiker een alternatieve interface bieden als de vereiste versie van Flash Player niet is geïnstalleerd. Als er bijvoorbeeld een oudere versie van Flash Player is geïnstalleerd, kunt u een koppeling naar de downloadversie van het AIR-bestand opgeven (in plaats van de toepassing te installeren met het bestand badge.swf of de API van air.swf).
AIR-toepassingen installeren met het bestand badge.swfIn de SDK van AIR is het bestand badge.swf opgenomen waarmee u de functie voor naadloze installatie eenvoudig kunt gebruiken. Met badge.swf kunt u de runtime en een AIR-toepassing installeren via een koppeling op een webpagina. Het bestand badge.swf en de broncode worden geleverd voor distributie op uw website. In de instructies in deze sectie vindt u informatie over het instellen van parameters voor het bestand badge.swf van Adobe. U kunt ook beschikken over de broncode van het bestand badge.swf en deze aanpassen. Het bestand badge.swf insluiten in een webpagina
U kunt het bestand badge.swf ook bewerken en opnieuw compileren. Zie Het bestand badge.swf wijzigen voor meer informatie. AIR-toepassingen installeren via een koppeling voor naadloze installatie op een webpaginaWanneer u de koppeling voor naadloze installatie aan een pagina hebt toegevoegd, kan de gebruiker de AIR-toepassing installeren door op de koppeling in het SWF-bestand te klikken.
Het bestand badge.swf wijzigenDe SDK van AIR bevat de bronbestanden voor het bestand badge.swf. Deze bestanden zijn te vinden in de map samples/badge van de SDK:
Met Flash CS3 of Flash CS4 kunt u de visuele interface van het bestand badge.fla opnieuw ontwerpen. Met de constructorfunctie AIRBadge(), die in de klasse AIRBadge is gedefinieerd, laadt u het bestand air.swf dat zich bevindt op http://airdownload.adobe.com/air/browserapi/air.swf. Het bestand air.swf bevat code voor het gebruik van de functie voor naadloze installatie. De methode onInit() (in de klasse AIRBadge) wordt opgeroepen nadat het bestand air.swf file is geladen: private function onInit(e:Event):void {
_air = e.target.content;
switch (_air.getStatus()) {
case "installed" :
root.statusMessage.text = "";
break;
case "available" :
if (_appName && _appName.length > 0) {
root.statusMessage.htmlText = "<p align='center'><font color='#"
+ _messageColor + "'>In order to run " + _appName +
", this installer will also set up Adobe® AIR™.</font></p>";
} else {
root.statusMessage.htmlText = "<p align='center'><font color='#"
+ _messageColor + "'>In order to run this application, "
+ "this installer will also set up Adobe® AIR™.</font></p>";
}
break;
case "unavailable" :
root.statusMessage.htmlText = "<p align='center'><font color='#"
+ _messageColor
+ "'>Adobe® AIR™ is not available for your system.</font></p>";
root.buttonBg_mc.enabled = false;
break;
}
}
Met de code wordt de globale variabele _air ingesteld op de hoofdklasse van het geladen bestand air.swf. In deze klasse zijn de volgende openbare methoden opgenomen, die in het bestand badge.swf worden gebruikt om de functionaliteit voor naadloze installatie op te roepen:
De instellingen voor url en runtimeVersion worden aan het SWF-bestand doorgegeven via de FlashVars-instellingen in de HTML-containerpagina. Als de toepassing na de installatie automatisch wordt gestart, kunt u via communicatie met LocalConnection de geïnstalleerde toepassing bij het oproepen contact laten opnemen met het bestand badge.swf. Zie Communicatie tussen toepassingen voor meer informatie. U kunt ook de methode getApplicationVersion() van het bestand air.swf oproepen om te controleren of een toepassing is geïnstalleerd. U kunt deze methode oproepen voordat de toepassing wordt geïnstalleerd of nadat de installatie is gestart. Zie Vanuit een webpagina controleren of een AIR-toepassing is geïnstalleerd voor meer informatie. Het bestand air.swf ladenU kunt zelf een SWF-bestand maken waarin u de API's van het bestand air.swf gebruikt voor de interactie met de runtime en AIR-toepassingen vanuit een webpagina in een browser. Het bestand air.swf bevindt zich op http://airdownload.adobe.com/air/browserapi/air.swf. Als u vanuit uw SWF-bestand wilt verwijzen naar de API's van air.swf, laadt u het bestand air.swf in hetzelfde toepassingsdomein als uw SWF-bestand. In het volgende voorbeeld ziet u code voor het laden van het bestand air.swf in het toepassingsdomein van het SWF-bestand: var airSWF:Object; // This is the reference to the main class of air.swf
var airSWFLoader:Loader = new Loader(); // Used to load the SWF
var loaderContext:LoaderContext = new LoaderContext();
// Used to set the application domain
loaderContext.applicationDomain = ApplicationDomain.currentDomain;
airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit);
airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"),
loaderContext);
function onInit(e:Event):void
{
airSWF = e.target.content;
}
Nadat het bestand air.swf is geladen (wanneer het contentLoaderInfo-object van het Loader-object de init-gebeurtenis verzendt), kunt u elke API van air.swf oproepen. Deze API's worden in de volgende secties beschreven: Opmerking: Met het bestand badge.swf, dat aanwezig is in de SDK van AIR, wordt het bestand air.swf automatisch geladen. Zie AIR-toepassingen installeren met het bestand badge.swf. De instructies in deze sectie zijn van toepassing wanneer u zelf een SWF-bestand maakt waarmee het bestand air.swf wordt geladen.
Controleren of de runtime is geïnstalleerdEen SWF-bestand kan controleren of de runtime is geïnstalleerd door de methode getStatus() op te roepen in het bestand air.swf dat is geladen vanaf http://airdownload.adobe.com/air/browserapi/air.swf. Zie Het bestand air.swf laden voor meer informatie. Nadat het bestand air.swf is geladen, kunt u vanuit het SWF-bestand de methode getStatus() van het bestand air.swf als volgt oproepen: var status:String = airSWF.getStatus(); De methode getStatus() retourneert een van de volgende tekenreekswaarden, afhankelijk van de status van de runtime op de computer:
De methode getStatus() meldt een fout als de vereiste versie van Flash Player (versie 9 upgrade 3 op Windows en Mac OS, of versie 10 op Linux) niet in de browser is geïnstalleerd. Vanuit een webpagina controleren of een AIR-toepassing is geïnstalleerdEen SWF-bestand kan controleren of een AIR-toepassing (met een overeenkomstige toepassings-id en uitgevers-id) is geïnstalleerd door de methode getApplicationVersion() op te roepen in het bestand air.swf dat is geladen vanaf http://airdownload.adobe.com/air/browserapi/air.swf. Zie Het bestand air.swf laden voor meer informatie. Nadat het bestand air.swf is geladen, kunt u vanuit het SWF-bestand de methode getApplicationVersion() van het bestand air.swf als volgt oproepen: var appID:String = "com.example.air.myTestApplication";
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1";
airSWF.getApplicationVersion(appID, pubID, versionDetectCallback);
function versionDetectCallback(version:String):void
{
if (version == null)
{
trace("Not installed.");
// Take appropriate actions. For instance, present the user with
// an option to install the application.
}
else
{
trace("Version", version, "installed.");
// Take appropriate actions. For instance, enable the
// user interface to launch the application.
}
}
De methode getApplicationVersion() heeft de volgende parameters:
De methode getApplicationVersion() meldt een fout als de vereiste versie van Flash Player (versie 9 upgrade 3 op Windows en Mac OS, of versie 10 op Linux) niet in de browser is geïnstalleerd. AIR-toepassingen installeren vanuit de browserEen SWF-bestand kan een AIR-toepassing installeren door de methode installApplication() op te roepen in het bestand air.swf dat is geladen vanaf http://airdownload.adobe.com/air/browserapi/air.swf. Zie Het bestand air.swf laden voor meer informatie. Nadat het bestand air.swf is geladen, kunt u vanuit het SWF-bestand de methode installApplication() van het bestand air.swf als volgt oproepen: var url:String = "http://www.example.com/myApplication.air"; var runtimeVersion:String = "1.0"; var arguments:Array = ["launchFromBrowser"]; // Optional airSWF.installApplication(url, runtimeVersion, arguments); Met de methode installApplication() wordt de opgegeven toepassing geïnstalleerd op de computer van de gebruiker. Deze methode heeft de volgende parameters:
De methode installApplication() werkt alleen wanneer deze wordt opgeroepen in de gebeurtenishandler voor een gebruikersgebeurtenis, zoals een muisklik. De methode installApplication() meldt een fout als de vereiste versie van Flash Player (versie 9 upgrade 3 op Windows en Mac OS, of versie 10 op Linux) niet in de browser is geïnstalleerd. Als een gebruiker in Mac OS een recentere versie van een toepassing wil installeren, moet de gebruiker over voldoende toegangsrechten beschikken om te installeren in de toepassingsmap (en over beheerdersrechten als de toepassing de runtime bijwerkt). In Windows moet de gebruiker over beheerdersrechten beschikken. U kunt ook de methode getApplicationVersion() van het bestand air.swf oproepen om te controleren of een toepassing al is geïnstalleerd. U kunt deze methode oproepen voordat het installatieproces van de toepassing begint of nadat de installatie is gestart. Zie Vanuit een webpagina controleren of een AIR-toepassing is geïnstalleerd voor meer informatie. Wanneer de toepassing is gestart, kan deze met de SWF-inhoud in de browser communiceren via de klasse LocalConnection. Zie Communicatie tussen toepassingen voor meer informatie. Geïnstalleerde AIR-toepassingen starten vanuit de browserAls u de browseroproepfunctie wilt gebruiken (zodat een toepassing kan worden gestart vanuit de browser), moet in het descriptorbestand van de doeltoepassing de volgende instelling zijn opgenomen: <allowBrowserInvocation>true</allowBrowserInvocation> Zie Eigenschappen van AIR-toepassingen instellen voor meer informatie over het descriptorbestand van de toepassing. Een SWF-bestand in de browser kan een AIR-toepassing starten door de methode launchApplication() op te roepen in het bestand air.swf dat is geladen vanaf http://airdownload.adobe.com/air/browserapi/air.swf. Zie Het bestand air.swf laden voor meer informatie. Nadat het bestand air.swf is geladen, kunt u vanuit het SWF-bestand de methode launchApplication() van het bestand air.swf als volgt oproepen: var appID:String = "com.example.air.myTestApplication"; var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; var arguments:Array = ["launchFromBrowser"]; // Optional airSWF.launchApplication(appID, pubID, arguments); De methode launchApplication() is gedefinieerd op het hoogste niveau van het bestand air.swf (dat is geladen in het toepassingsdomein van het SWF-bestand van de gebruikersinterface). Als u deze methode oproept, wordt de opgegeven toepassing gestart (als deze is geïnstalleerd en oproepen via de browser is toegestaan via de instelling van allowBrowserInvocation in het descriptorbestand van de toepassing). De methode heeft de volgende parameters:
De methode launchApplication() werkt alleen wanneer deze wordt opgeroepen in de gebeurtenishandler voor een gebruikersgebeurtenis, zoals een muisklik. De methode launchApplication() meldt een fout als de vereiste versie van Flash Player (versie 9 upgrade 3 op Windows en Mac OS, of versie 10 op Linux) niet in de browser is geïnstalleerd. Als het element allowBrowserInvocation op false is ingesteld in het descriptorbestand van de toepassing, heeft het oproepen van de methode launchApplication() geen effect. Voordat u de gebruikersinterface weergeeft om de toepassing te starten, kunt u het best de methode getApplicationVersion() in het bestand air.swf oproepen. Zie Vanuit een webpagina controleren of een AIR-toepassing is geïnstalleerd voor meer informatie. Wanneer de toepassing wordt opgeroepen via de browseroproepfunctie, verzendt het NativeApplication-object van de toepassing een BrowserInvokeEvent-object. Zie Oproepen vanuit browser voor meer informatie. Als u de browseroproepfunctie gebruikt, moet u rekening houden met de gevolgen voor de beveiliging die in Oproepen vanuit browser worden beschreven. Wanneer de toepassing is gestart, kan deze met de SWF-inhoud in de browser communiceren via de klasse LocalConnection. Zie Communicatie tussen toepassingen voor meer informatie. |