Das localSharedObject

Thema:
Das localSharedObject in Flash
Description:
Nutzen des localSharedObject in Flash
Keywords:
Flash, Cookies, localSharedObject
Author:
Ingo Mann
Date:
24.4.2002
Doc-ID:
21-001
URL:
http://www.flashworker.de/tutorial/40/001.html
Version:
2.0
Änderungen:
Beispiel fla eingefügt
Anforderungen:
Flash MX oder höher
Vorkenntnisse:
Flash Actionscript

Download:
PC: "beispiel.zip", ca. 10 Kb

Einleitung
  Was ist das localSharedObject?
  Erstellen des localSharedObject
  Setzen der Werte
  Auslesen der Werte
  Beispiel

 

 

 

 

 

 



Was ist das localSharedObject?

Das localSharedOject ist eine neue, mächtige Funktion von Flash MX, die es den Entwicklern erlaubt Daten lokal auf dem Rechner des Users zu speichern, ähnlich einem Browsercookie. Durch die Möglichkeit Daten lokal zu speichern eröffnen sich dem Entwickler mit Flash MX völlig neue Möglichkeiten, wie zum Beispiel ein User Profiling oder der Speicherung der User Daten wie Einstellungen des Rechners (z.B. Auflösung, etc.) um Ihm beim nächsten Besuch der Seite direkt eine angepasste Version der Seite bereitzustellen.

Die Einstellungen im Player

Abb.1: Die Einstellungen für das local
shared object im Flash Player

Bei jedem Entwickler wird sich nun als erstes die Frage auftun, was das localSharedObject alles leisten kann.
Diese Frage lässt sich mit ein paar Sätzen leicht klären:

Was kann das localSharedObject? Welche Einschränkungen gibt es für den Programmierer? Nun wird sich jedem Flasher die Frage stellen, wo wird das localSharedObject abgelegt, und in welcher Form? Die Antwort ist recht simpel: das localSharedObject wird im Verzeichnis abgelegt, in dem auch der Flash Player liegt und trägt die Dateiendung .sol.






Erstellen des localSharedObjects

Das localSharedObject wird mit der Methode getLocal erstellt. Das folgende Stück Actionscript erstellt eine Variable mit dem Name local und weist diese dem shared object mit dem Namen "teilmich" zu.

// localSharedObject erstellen
local = sharedobject.getLocal ("teilmich");

Sofern lokal noch kein localSharedObject mit dem Namen "teilmich" von der aktuellen Domain existiert, wird dies nun erstellt.

Der optionale Parameter localPath erlaubt es (etwas) Einfluss darauf zu nehmen, wo das LSO auf der Platte gespeichert wird (allerdings nur innerhalb des Flash Player Verzeichnisses. Dieser Pfad ist (oder beinhaltet) die URL wo der SWF Film liegt.

Lautet die Domain des Filmes also:

http://www.flashworker.de/movies/movie1.swf ,

so kann das localSharedObject beispielsweise auf den Pfad /movies/movie1.swf gelegt werden.

Das entsprechende Actionscript würde wie folgt aussehen:

local = sharedobject.getLocal ("teilmich", "movies/movie1.swf");

Denkbar wäre eine solche Lösung für Webseiten, die mehr als ein localSharedObject verwenden. Z.B. alle Filme einer Domain können auf einen Usernamen der in einem localSharedObject im root Level (setzt den localPath auf "/") gespeichert ist zugreifen, während eine andere Information speziell für einen anderen Film in einem loacl shared object gespeichert wird, dessen localPath Parameter für dieses Movie angepasst ist (localPath auf "/movies/movie1.swf" setzen).






Den Wert für das localSharedObject setzen

// eine Variable wählen die zum Inhalt des Textfeldes "UserName" passt.
Local.data.name = userName.text;

// die Variable "Counter" um eins erhöhen
local.data.counter++;

Die Daten werden in das LSO geschrieben, wenn der Film aus dem FlashPlayer gelöscht wird. Möchte man die Daten sofort sichern, kann dies mit der Methode flush() geschehen:

local.flush();





Den Inhalt des localSharedObject auslesen

//dem Textfeld Username den Wert der Variablen "name" zuweisen
Username.text = local.data.name;

// dem TextFeld "anzeige" den Wert des Counters zuweisen
anzeige.text = "Du warst " +local.data.counter+ " mal hier.";

Da das localSharedObject "teilmich" schon lokal gespeichert wurde, können die Daten wie folgt ausgelesen werden:

local = sharedobject.getLocal ("teilmich");



Beispiel

Zuguterletzt möchte ich der Theorie noch ein Beispiel folgen lassen, dass die Funktionalität des localSharedObjects nocheinmal verdeutlicht. In diesem Beispiel wird der im Eingabefeld eingegebene Text im localSharedObject gespeichert und beim nächsten Aufruf der Seite wieder ausgegeben. Der Text aus dem Eingabefeld wird bei jeder Änderung im Textfeld oder auf Knopfdruck gespeichert.



Abb.1: Die Einstellungen für das local
shared object im Flash Player

Download der Beispieldateien: "beispiel.zip", ca. 10Kb