Flash-Bildschirmschoner mit Adobe AIR erstellen

Vor längerer Zeit hat Lee Brimelow ein Beispiel gezeigt, wie man einen Bildschirmschoner mit Adobe AIR (damals noch Apollo) erstellen kann. Nach einigen Trial-and-Error-Versuchen habe ich es hingekriegt, mit Adobe AIR 1.0 eine AIR-Anwendung als Screensaver zu installieren.

Voraussetzung ist, dass die Adobe AIR 1.0 Runtime installiert ist. Außerdem funktioniert es nur für Windows.

Man installiert AIR-Programme als Screensaver auf auf diese Weise:

  • Das AIR-Beispiel herunterladen und installieren
  • In das Installationsverzeichnis gehen (Standard ist c:\programme\air-screensaver) und dort die .exe-Datei suchen
  • Die Dateiendung dieser Datei in .scr umbenennen.
  • Mit der rechten Maustaste auf die Datei klicken, nun „installieren“ wählen.
  • Die AIR-Anwendung wird als Bildschirmschoner installiert.

Der Screensaver funktioniert folgendermaßen: Nach dem Start des Programms wird der Fullscreen-Mode aufgerufen. Wichtig ist, dass dies über das INVOKE-Event gemacht wird, sonst funktioniert es nicht korrekt. Dann wird die Monitorauflösung ausgelesen und ein schwarzer MovieClip als Hintergrund auf diese Maße skaliert.

Der eigentliche Inhalt wird über die Loader-Komponente geladen. Man könnte natürlich auch direkt eine Animation in der AIR-Datei ablaufen lassen. Das Beispiel verwendet als Demoinhalt eine alte Flex-Kuler-Animation von mir, die als externe SWF-Datei nachgeladen wird. Zusätzlich liegt auch eine XML-Datei mit einem Feed dabei, damit die Animation keine Internetverbindung benötigt.

[ad]

[as]
import flash.desktop.NativeApplication;
import flash.system.*;
import flash.events.*;

// ::::::::::::::::::
// ::::::::::::::::::
// ::::::::::::::::::

// align top left
stage.align = „tl“;

// add event listener for invocation
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvokeEvent);

// add event listener for fullscreen mode
stage.addEventListener(FullScreenEvent.FULL_SCREEN, onFullscreen);

function onInvokeEvent(invocation:InvokeEvent):void {

// go fullscreen
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;

}

function onFullscreen(evt:Event) {

// black background to screen resolution size
background_mc.width = Capabilities.screenResolutionX;
background_mc.height = Capabilities.screenResolutionY;
}

// ::::::::::::::::::
// ::::::::::::::::::
// ::::::::::::::::::

stage.addEventListener(MouseEvent.MOUSE_DOWN, onUserPresent);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onUserPresent);

function onUserPresent(evt:Event) {

// exit application
NativeApplication.nativeApplication.exit()
}

[/as]

Ich würde mich über Rückmeldung freuen, ob es auch bei anderen einwandfrei funktioniert.

Download: air-screensaver.air
Download: AIR Screensaver Sources (.fla)
Link: Apollo Screensaver with Transparency

2 Gedanken zu „Flash-Bildschirmschoner mit Adobe AIR erstellen“

  1. Bei mir gehts gut. Danke.
    Aber ich wollte das nachprogrammieren und er bringt mir die Fehlermeldung:
    1120: Zugriff auf eine nicht definierte Eigenschaft StageDisplayState.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert