Ich habe gerade eine aktualisierte Version des SWF Screensaver for Mac online gestellt. Neu in diesem Release (0.9.1) sind zwei Funktionen: der Online-Check und ein Debugmode.

Wer SWF Screensaver for Mac nicht kennt: Es handelt sich dabei quasi um ein sehr schlankes Dev-Kit zum Erstellen von Flash-Bildschirmschonern (sowohl Mac OS X 10.5 als auch 10.4). Es ist entstanden, da es keine wirkliche Alternative zum 250$-teuren Screentime gibt, um aus Flashfiles (.swf) einen Screensaver zu machen.

Überprüfen, ob Onlineverbindung besteht

Mit dem neuen Feature “Online check” kann überprüft werden, ob beim Starten des Screensavers eine Internetverbindung besteht. Diese Überprüfung könnte man auch in Flash selbst machen, jedoch läuft man schnell in Gefahr, ein Security-/Sandbox-Problem zu haben.

Folgendes Beispiel: Man möchte aktuelle Infos aus einem Online-RSS-Feed anzeigen. Falls jedoch keine Internetverbindung besteht, soll ein lokaler RSS-Feed aus dem Screensaver-Bundle verwendet werden. Diese Anforderung lässt sich mit einer gewöhnlichen SWF-Datei nicht realisieren, da man aus Sicherheitsgründen entweder nur lokale Files oder nur Netzwerkzugriffe tätigen kann.

Eine mögliche Lösung wäre, alle lokalen Files in die SWF einzubetten. Dann benötigt man keine lokalen Zugriffe mehr. Man könnte natürlich auch über die Flash Player Einstellungen das SWF-File als “local trusted” kennzeichen. Dies möchte man ziemlich sicher aber einem Nutzer, der den Bildschirmschoner herunterlädt, nicht zumuten.

Hier kommt nun das neue Feature ins Spiel. Man hinterlegt für beide Fälle (online und offline) zwei verschiedene Flashdateien. Die Online-Variante ist für den Netzwerkzugriff veröffentlicht (”File > Publish settings > Flash”), die Offline-Variante für den lokalen Zugriff. Der Mac-Screensaver überprüft beim Starten die Internetverbindung und lädt das entsprechende File.

Hier ein kurzes Demo:

Parameter für den Onlinecheck

In den Einstellungen des Screensavers (plist.info im Package) kann ein Servername (z.B. www.meinserver.de) hinterlegt werden. Dieser wird angepingt, wenn der Onlinecheck aktiviert ist (dazu den Parameter CheckIfOnline auf true setzen). Im Fall, das ein Verbindung zu besagtem Server besteht, wird die unter dem Parameter ScreensaverFile genannte Datei geladen. Wenn nicht (=offline), dann wird ScreensaverFileOnlineCheckFailed geladen.

Debugmode

Ebenfalls in der plist.info steht der neue Parameter DebugMode. Setzt man diesen auf true, wird ein Logfile geschrieben. Es heißt Log.txt und landet im gleichen Verzeichnis wie die plist.info. Wie man die Flashanimation selbst loggen kann, steht hier: LogBook for Flash CS3.

Link: SWF Screensaver for Mac