asLocalConnect (AS2) - The better way of LocalConnection

ActionScript 2 / Letzte Aktualisierung 27.09.2007

asLocalConnect 0.4 ist eine ActionScript 2 Erweiterung / Ersatz für das standart LocalConnection.
Es bietet einiges mehr an Feature und ist auch für Anfänger interessant, da hier sehr einfach und schnell eine LocalConnection aufgebaut und verwendet werden kann.

Inhalt

Vorwort

Als ich mich eine zeit lang näher mit Localconnection beschäftigt habe ist mir aufgefallen, das Localconnection zwar eine schöne Sache ist, aber es doch sehr viele Hürden und Hindernisse mit sich bringt.
Vor allem wenn die Flashdateien von verschiedenen Servern oder einen Lastenverteiler geladen werden kommt es schon mal vor, das die Localconnection nicht startet.
Es gibt natürlich einige Workarrounds für alles nur dachte ich mir warum nicht eine alternative dafür schreiben und so ist asLocalConnect entstanden.
Ziel war es alle Features von LocalConnection umzusetzen und noch einige mehr hinzu zufügen.

Unterschied zwischen LocalConnection und asLocalConnect

Nachteile von LocalConnection

  • Keine Heartbeat Unterstützung
  • Keine Events wenn andere LocalConnections verfügbar sind
  • Keine Events wenn diese wieder die Verbindung verlieren
  • Keine Broadcast Funktion
  • Keine mehrfache anzeigen der selben Flashdateien möglich (zB: verschiedene Browserfenster / Browsertabs)
  • Keine Übersicht über Funktion die per LocalConnection verarbeitet werden
  • Sicherheitsabfragen müssen selber zusammen gestellt werden
  • Limit bei der Menge der Daten die übertragen werden können, welches aber nicht genau bekannt ist :(

Vorteile von asLocalConnect

  • Heartbeat Unterstützung für eine beliebige Anzahl von LocalConnection
  • Events für onLoad, onUnload und onHeartBeat
  • Broadcasting
  • Channel Funktion, somit können die selben Flashdateien mehrfach angezeigt werden ohne sich dabei gegenseitig zu stören
  • Funktion die der LocalConnection zugewiesen werden, können abgefragt werden
  • Einfaches Sicherheitslevel Konzept welches Standartanwendungen vollständig abbildet
  • Einfaches Erstellen von LocalConnection und Status Abfrage einzelner LocalConnection
  • Versucht durch Timings und andere kleinen Tricks das Limit von der Verbindungslimit / Datenmenge zu umgehen
  • und weiter Verbesserungen folgen...

Hinweis zu asLocalConnect

Die Komponente asLocalConnect unterliegt der BSD Lizenz, die dazu gehörige Dokumentation / Beispiele unterliegt der Creative Commons (by-sa) Lizenz. Mehr Information gibs es auch auf http://sourceforge.net/projects/aslocalconnect.

Download von asLocalConnect

asLocalConnect wird auf SourceForge gehostet auf dieser Seite kann die aktuelle Version gedownloaden werden und Fehler bzw. Verbesserungen vorgebracht werden.

Installation von asLocalConnect

asLocalConnect wird als Flash Komponente bereits gestellt, diese Datei muss einfach in den entsprechenden Komponenten Ordner von Flash kopiert werden.
Dies ist in den meisten Fällen folgender Ordner:

C:\Dokumente und Einstellungen\[Benutzername]\Lokale Einstellungen\Anwendungsdaten\Macromedia\
[Flash 8|Flash MX 2004]\[de|en]\Configuration\Components

Wenn die Datei dort hinein kopiert ist, und Flash neu gestartet ist, sollte unter Komponenten - Standartkomponenten - asLocalConnect erscheinen, das Komponenten Fenster kann auch mit STRG+F7 aufgerufen werden.
Die asLocalConnect Komponente muss dann nur in die Bibliothek gezogen werde, wenn diese benötigt wird.

Einfaches Beispiel

Diese Codebeispiel soll zeigen wie einfach mit Hilfe von asLocalConnect eine LocalConnection aufgebaut werden kann, welche auch noch einen HeartBeat enthält.

Empfänger definieren

ActionScript Code:
var lc_FlashB = new de.markusbordihn.flash.asLocalConnect('FlashB'); lc_FlashB.listen('test', function (_text:String) { trace('Empfange: '+_text); }); lc_FlashB.heartbeat('FlashA');

Hier hat die LocalConnection den Namen "FlashB" und führt einen "trace" aus, sobald jemand über LocalConnection auf die Funktion 'test' zugreift.
Außerdem wird ein Heartbeat mit FlashA gestartet, damit dieses genau weiß wann diese Daten senden kann.

Sender definieren

ActionScript Code
var lc_FlashA = new de.markusbordihn.flash.asLocalConnect('FlashA'); lc_FlashA.onLoad(function () { lc_FlashA.send('FlashB', 'test', 'Hello World'); }); lc_FlashA.heartbeat('FlashB');

Hier hat die LocalConnection den Namen "FlashA" und sendet an "FlashB" den String "Hello World", sobald diese verfügbar ist.
Die letzte Zeile starten den Heartbeat mit FlashB damit FlashA genau weiß wann dieses Daten senden kann.

Erweiterte Beispiele

2 Flashdateien die Daten austauschen mit asLocalConnect und Heartbeat

Anbei ein Beispiel mit asLocalConnect, hier sieht man das die Flashdateien genau wissen wann die andere Datei nicht mehr da ist.
Durch die verschiedenen Event-Händler wie "onLoad" und "onUnload" lässt sich sehr genau festlegen wie sich die Flashdateien in welchen Fall zu verhalten haben.

Bitte öffnet Example A und Example B in beliebiger Reihenfolge, natürlich können diese auch in unterschiedlichen Browser geöffnet werden.
Sobald sich beide Flashdateien gefunden haben erscheint eine Eingabe-box, wo Text zwischen den beiden Flashdateien verschickt werden kann.

ActionScript Code

Der ActionScript Code von den beiden Flash Dateien unterscheidet sich eigentlich nicht wirklich, nur bei den Namen für die LocalConnection und wohin die Daten gesendet werden.

Flash A:
// // Example from Markus Bordihn (http://markusbordihn.de) // var status = "Loading..."; show_ff(false); var lc_flasha = new de.markusbordihn.flash.asLocalConnect('FlashA'); lc_flasha.listen('rec_text', function (_text:String) { if (_text) { txt.text = txt.text+_text+"\n"; } }); lc_flasha.onLoad(function () { show_ff(true); status = "Conneted"; }); lc_flasha.onUnload(function () { show_ff(false); status = "Disconnected"; }); lc_flasha.onHeartBeat(function () { bumper.gotoAndPlay(1); }); lc_flasha.heartbeat('FlashB'); Submit.onRelease = function() { if (text.text) { lc_flasha.send('FlashB', 'rec_text', text.text); text.text = ""; } }; function show_ff(vis:Boolean) { text._visible = vis; txt._visible = vis; Submit._visible = vis; a._visible = vis; b._visible = vis; }

Instanznamen und dazu gehörige Objekte:
asLocalConnect Name = FlashA
lc_flasha = asLocalConnect Objekt
text = TextInput
txt = TextArea
Submit = Button
a und b = Text über TextInput und TextArea

Flash B:
// // Example from Markus Bordihn (http://markusbordihn.de) // var status = "Loading..."; show_ff(false); var lc_flashb = new de.markusbordihn.flash.asLocalConnect('FlashB'); lc_flashb.listen('rec_text', function (_text:String) { if (_text) { txt.text = txt.text+_text+"\n"; } }); lc_flashb.onLoad(function () { show_ff(true); status = "Conneted"; }); lc_flashb.onUnload(function () { show_ff(false); status = "Disconnected"; }); lc_flashb.onHeartBeat(function () { bumper.gotoAndPlay(1); }); lc_flashb.heartbeat('FlashA'); Submit.onRelease = function() { if (text.text) { lc_flashb.send('FlashA', 'rec_text', text.text); text.text = ""; } }; function show_ff(vis:Boolean) { text._visible = vis; txt._visible = vis; Submit._visible = vis; a._visible = vis; b._visible = vis; }

Instanznamen und dazu gehörige Objekte:
asLocalConnect Name = FlashB
lc_flashb = asLocalConnect Objekt
text = TextInput
txt = TextArea
Submit = Button
a und b = Text über TextInput und TextArea

Synchronisation mit 9 Flashdateien und Broadcast Funktion

In diesem Beispielen werden 9 Flashdateien gleichzeitig geladen und von einer Master Flashdatei gesteuert.
Hier wird die Funktion "broadcast" verwendet, hiermit kann sehr einfach an alle beteiligten Flashdatei eine Anfrage geschickt werden, in diesem Fall um dem Counter zu erhöhen.
Der grüne Counter ist hierbei der Master und alle roten Counter sind Slaves.

ActionScript Code

Master:
// // Example from Markus Bordihn (http://markusbordihn.de) // var Counter=0; var lc_master = new de.markusbordihn.flash.asLocalConnect('Master'); lc_master.onLoad(function () { setInterval(counter, 500); }); function counter() { setCounter(++Counter); lc_master.broadcast('counter', Counter); } function setCounter(count:Number) { if (count) { Counter=count; } } lc_master.heartbeat('slave_1','slave_2','slave_3','slave_4','slave_5','slave_6','slave_7','slave_8');

Der Master macht einen Heartbeat mit allen anderen Flashdateien und erst wenn diese da sind, fängt er an einen Broadcast Befehl abzuschicken.
Wenn diese Seite in einem anderen Browser geladen wird, synchronisieren sich in diesem neuen Fenster die Flashdateien unabhängig vom ersten Fenster.

Slaves:
// // Example from Markus Bordihn (http://markusbordihn.de) // var Counter=0; var lc_slave = new de.markusbordihn.flash.asLocalConnect('slave_1'); function setCounter(count:Number) { if (count) { Counter=count; } } lc_slave.listen('counter',setCounter); lc_slave.heartbeat('Master','slave_2','slave_3','slave_4','slave_5','slave_6','slave_7','slave_8');

Hier sieht man den ActionScript Code für die Slave 1 Datei, es wird also nur der asLocalConnect Namen geändert und die Heartbeat Liste angepasst, ansonsten haben alle Slave Dateien den selben ActionScript Code.

Integration in bereits vorhandenen Projekte oder Flashdateien

asLocalConnect ist auf Grund der Funktionen nicht mit normalen LocalConnection kompatible, jedoch ist es relative einfach die Features von asLocalConnect auch in existierende Flashdateien zu integrieren.
Die meiste Probleme bei LocalConnection besteht darin das eine LocalConnection nicht zu stande kommt, da die Flashdateien nicht auf einander warten, dies kann mit asLocalConnect behoben werden.
# Hierzu wird einfach ein neues und leeres erstes Frame eingefügt und in diesem neuen Frame wird asLocalConnect verwenden mit Heartbeat, sobald sich beide Flashdateien gefunden haben, springen diese auf Frame 2 um.
Man kann hier natürlich auch sagen wenn die Verbindung wieder weg ist springt diese wieder auf Frame 1 zurück und wartet.

Das folgende Beispiel zeigt genau diesen Weg, durch asLocalConnect wird sichergestellt das beide Flashdateien vorhanden sind und somit sollte der restliche Code mit LocalConnection ohne Probleme funktionieren.
Es muss nur darauf geachtet werden das dies in der Flashdatei gemacht wird, welche auch die LocalConnection ausführt.
Somit hat es wenig sind wenn dies eine Parent Flashdatei ist mit mehren Childs, dies in der Parent Flashdatei zu hinterlegen. Hier sollte dann dies in dem Child hinterlegt werden, welches die LocalConnection enthält.

ActionScript Code

Flash A:
// // Example from Markus Bordihn (http://markusbordihn.de) // lc_flasha = new de.markusbordihn.flash.asLocalConnect('flasha'); lc_flasha.onLoad(function () { gotoAndPlay(2); }); lc_flasha.heartbeat('flashb'); stop(); // To stop the Flashfile until the other Flashfile is avalible

Diese Zeilen sorgen wie gesagt, das asLocalConnect einen HeartBeat mit "flashb" macht, sobald diese verfügbar ist springt diese Flashdatei dann auf Frame2 weiter.
Hier können natürlich auch andere Anweisungen geben werden, oder andere Framenummern angegeben werden.

Flash B:
// // Example from Markus Bordihn (http://markusbordihn.de) // lc_flashb = new de.markusbordihn.flash.asLocalConnect('flashb'); lc_flashb.onLoad(function () { gotoAndPlay(2); }); lc_flashb.heartbeat('flasha'); stop(); // To stop the Flashfile until the other Flashfile is avalible

Hiermit wird dann auch ein Heartbeat mit "flasha" gestartet, somit ist sichergestellt da beide Flashdateien geladen sind und die nachfolgenden normalen LocalConnections auch ohne Probleme ausgeführt werden.
Natürlich sollte asLocalConnect nicht nur als eine Art "Preloader" verwendet werden, da es wie gesagt einige interesante Features mehr hat die hier leider nicht abgedeckt werden.
Wird z.B: eine normale LocalConnection Flashdatei in mehreren Fenster gleichzeitig geöffnet, kommen sich die LocalConnections in die Quere.
Dies kann bei asLocalConnect nicht bassieren, hier können die Flashdateien bis zu 10 mal geöffnet werden ohne das diese sich gegenseitig stören.

Übersicht über asLocalConnect

Anbei eine ausführliche Übersicht, welche alle Funktionen, Ereignisse und Konstruktoren von asLocalConnect zeigen. Weiter unten wird dann genauer auf die einzelnen Punkte eingegangen welches Möglichkeiten es gibt.

Übersicht über Konstruktoren

SyntaxBeschreibung
asLocalConnect(connectionName:String)Erstellt ein asLocalConnect-Objekt. Falls ein connectionName angegeben wird, wird außerdem eine Verbindung zu diesem hergestellt.

Übersicht über Methoden

SyntaxBeschreibung
connect(connectionName:String) : BooleanBereitet ein LocalConnection-Objekt auf den Empfang von Befehlen eines LocalConnection.send()-Befehls vor (das so genannte sendende LocalConnection-Objekt).
listen(listnerName:String, functionName:Function) : VoidFügt eine Funktion zum LocalConnection Object hinzu, welches dann über LocalConnection ausgeführt werden kann.
allowDomain(domain:String) : VoidPrüft ob die übergebene Domain bereits in der allowDomain Liste ist, falls nicht wird diese hinzugefügt.
setSecurity(securityLevel:Number) : VoidSetzt das Security Level welches für die LocalConnection gelten soll, insgesamt gibt es hier 8 Stufen.
send(connectionName:String, methodName:String, args:Object) : BooleanRuft die Methode "method" für eine mit dem Befehl LocalConnection.connect( connectionName ) geöffnete Verbindung auf (das so genannte empfangende LocalConnection-Objekt).
broadcast(methodName:String, args:Object) : BooleanRuft die Methode method für alle derzeit geöffnete Verbindungen auf (die so genannte empfangenden LocalConnection-Objekte).
domain() : StringGibt die Domain der LocalConnection zurück.
heartbeat(connectionNames:Array) : VoidFügt einen Heartbeat für die übergebenen connectionNames hinzu.
heartbeatstatus(connectionName:String) : BooleanGibt den derzeitigen Status für den übergebenen connectionName zurück. Falls kein Wert übergeben wird, wird hier der Status für alle connectionNames zurück gegeben.
info() : VoidStartet eine "trace" Ausgabe mit den LocalConnection Name, LocalConnection Channel und dessen Status.
close() : VoidBeendet die LocalConnection und auch ggf. den Heartbeat.

Übersicht über Ereignisse

EventBeschreibung
onLoad(onLoad_function:Function) : VoidWird aufgerufen, wenn alle LocalConnections verfügbar sind. (HeartBeat)
onUnload(onUnload_function:Function) : VoidWird aufgerufen, wenn die LocalConnection die Verbindung verliert.
onHeartBeat(HeartBeat_function:Function) : Void Wird bei jedem gesendeten Heartbeat aufgerufen.

Konstruktoren

asLocalConnect(connectionName:String)

Hiermit wird ein asLocalConnect Objekt erstellt und einer Variable zugewiesen, dies ist nötig um später darauf zugreifen zu können.
Alternativ kann ich auch ein ConnectionName übergeben werden, falls dieser übergeben wird, baut asLocalConnect automatisch eine Verbindung mit diesen Verbindungsnamen auf, so das ein späteres connect nicht nötig ist.

ActionScript Code:
var lc_Flash123 = new de.markusbordihn.flash.asLocalConnect('Flash123');

Hier wird das LocalConnection Objekt mit den Namen "lc_Flash123" erstellt und dieses hat den Verbindungsnamen "Flash123".
Bitte beachten das der Verbindungsname mind. 4 Zeichen lang sein muss ein "_" wird automatisch von asLocalConnect angefügt, jedoch erkennt asLocalConnect ob der Name mit oder ohne führenden "_" übergeben worden ist.
Auch kann die Verbindung mit den Namen angesprochen werden welcher übergeben wird, auch wenn intern ein anderer Name verwendet wird.

Methoden

connect(connectionName:String) : Boolean

Mit connect wird der Verbindungsnamen festgelegt den diese Verbindung hat, sollte dieser nicht schon übergeben worden sein, kann dieser mit connect festgelegt werden.

ActionScript Code:
var lc_Flash123 = new de.markusbordihn.flash.asLocalConnect(); lc_Flash123.connect('Flash123');

Dieses Beispiel macht im Endeffekt genau das selbe wie das obere Beispiel, nur das hier zuerst das Objekt definiert wird und dann eine Verbindung aufgebaut wird.

listen(listnerName:String, functionName:Function) : Void

Hiermit wird festgelegt welcher "Listener" welcher Function zugeordnet ist, diese Function wird bei einer entsprechenden Anfragen von anderen asLocalConnect Objekten ausgeführt.

ActionScript Code:
var lc_Flash123 = new de.markusbordihn.flash.asLocalConnect('Flash123'); // Beispiel 1 lc_Flash123.listen('hello',function () { trace('Hello World'); }); // Beispiel 2 function helloWorld() { trace('Hello World'); } lc_Flash123.listen('world',helloWorld);

In diesem Beispiel wird trace('Hello World'); ausgeführt wenn ein asLocalConnect Object eine Anfrage an Flash123 sendet die den Namen hello bzw. world hat.

allowDomain(domain:String) : Void

Hier können Domains übergeben werden über welche asLocalConnect kommunizieren darf, bitte hierbei auch auf die richtige Einstellung von setSecurity achten.
Es können keine Wildcards mit übergeben werden, jedoch können durch setSecurity Teile der übergebenen Domain erlaubt werden.

ActionScript Code:
var lc_Flash123 = new de.markusbordihn.flash.asLocalConnect('Flash123'); lc_Flash123.allowDomain('reifanhp.de'); lc_Flash123.allowDomain('animearchive.de');

In diesem Beispiel werden die Domains reifanhp.de und animearchive.de zu der AllowDomain Liste hinzugefügt, Flashdateien von dieser Domain könnten also mit der Flashdatei aus dem Beispiel kommunizieren.

setSecurity(securityLevel:Number) : Void

Bei asLocalConnect gibt es ein vorgegebenes Security Modell, das je nach Sicherheits Level verschieden reagiert.

Sicherheits LevelBeschreibung
1Keine Sicherheits, alle Domains werden erlaubt, bitte nur zum Testen verwenden !
2Erlaubt Zugriffe von der selbe Top Level Domain wie z.B: *.org, *.net, *.de und erlaubt Domains die per AllowDomain festgelegt worden sind.
3Erlaubt Zugriffe von der selben Second Level Domain wie z.B: *.reifanhp.de, *.animearchive.de und erlaubt Domains die per AllowDomain festgelegt worden sind.
4Erlaubt Zugriffe von der selben Third Level Domain wie z.B: *.flash.area-network.de und erlaubt Domains die per AllowDomain festgelegt worden sind.
5Noch keine Verwendung. Nicht benützten !
6(Standard) Erlaubt alle Domains die per AllowDomain festgelegt worden sind und die selbe Domain in der die Flashdatei liegt.
7Erlaubt nur Domains die per AllowDomain festgelegt worden sind und ignoriert die gleiche Domain falls diese nicht in AllowDomain vorhanden ist !
8Erlaubt nur die selbe Domain in der die Flashdatei liegt und ignoriert Domains die per AllowDomain übergeben worden sind.
9Offline Modus, erlaubt keine Verbindung
ActionScript Code:
var lc_Flash123 = new de.markusbordihn.flash.asLocalConnect('Flash123'); lc_Flash123.allowDomain('reifanhp.de'); lc_Flash123.allowDomain('animearchive.de'); lc_Flash123.setSecurity(7);

In diesem Beispiel dürfen nur Flashdateien von der Domain reifanhp.de und animearchive.de eine Verbindung zu dieser Flashdatei aufbauen.
Sollte eine Flashdatei von der selben Domain z.B: flash.area-network.de versuchen eine Verbindung aufzubauen würden diese ignoriert werden.

send(connectionName:String, methodName:String, args:Object) : Boolean

Sendet Daten an den angegeben Verbindungsnamen an die angegebene Methode (Listener) welcher über listen festgelegt worden ist.

ActionScript Code:
var lc_Flash321 = new de.markusbordihn.flash.asLocalConnect('Flash321'); lc_Flash321.send('Flash123','hello','evtl. Parameter');

In diesem Beispiel wird an Flash123 die Aufforderung geschickt die Methode hello auszuführen, welche im Beispiel von listen ein trace mit der Ausgabe "Hello World" startet.

broadcast(methodName:String, args:Object) : Boolean

Sendet Daten an alle per HeartBeat erreichte Verbindungsnamen an die angegebene Methode (Listener) welcher über listen festgelegt worden ist.

ActionScript Code:
var lc_master = new de.markusbordihn.flash.asLocalConnect('Master'); lc_master.onLoad(function () { lc_master.broadcast('counter', Counter); }); lc_master.heartbeat('slave_1','slave_2','slave_3','slave_4','slave_5','slave_6','slave_7','slave_8');

Dieses Beispiel wird weiter oben genauer erklärt.

domain() : String

Gibt die Domain der LocalConnection zurück.

ActionScript Code:
var lc_Flash321 = new de.markusbordihn.flash.asLocalConnect('Flash321'); trace('Local Connection Domain: '+ lc_Flash321.domain());

Hier wird per trace die Domain der LocalConnection zurück gegeben.

heartbeat(connectionNames:Array) : Void

Fügt einen Heartbeat für die übergebenen connectionNames hinzu, dieser Heartbeat sollte immer verwendet werden damit die LocalConnection sich gegenseitig abfragen.
Dies wird durch geschicktes Timing so Prozessor schonend gemacht, das dieses keine Auswirkung auf die CPU Last hat.
Viele Methoden wie broadcast benötigen einen HeartBeat damit dieser einwandfrei funktioniert.

ActionScript Code:
var lc_master = new de.markusbordihn.flash.asLocalConnect('Master'); lc_master.onLoad(function () { lc_master.broadcast('counter', Counter); }); lc_master.heartbeat('slave_1','slave_2','slave_3','slave_4','slave_5','slave_6','slave_7','slave_8');

Hier wird ein HeartBeat mit slave_1, slave_2, slave_3, slave_4, slave_5, slave_6 , slave_7, slave_8 gestartet, somit weiß der Master wenn alle verfügbar sind oder einer dieser asLocalConnect die Verbindung verloren hat.
Bitte darauf achten das jedes asLocalConnect Object einen Heartbeat zu den anderen asLocalConnect Objekten hat, zwischen welchem Daten ausgetauscht werden.

heartbeatstatus(connectionName:String) : Boolean

Gibt den derzeitigen Status für den übergebenen connectionName zurück. Falls kein Wert übergeben wird, wird hier der Status für alle connectionNames zurück gegeben.

ActionScript Code:
var lc_master = new de.markusbordihn.flash.asLocalConnect('Master'); lc_master.heartbeat('slave_1','slave_2','slave_3','slave_4','slave_5','slave_6','slave_7','slave_8'); // Status von 'slave_1' abfragen lc_master.heartbeatstatus('slave_1'); // Allgemeinen Status alle Verbindungen abfragen lc_master.heartbeatstatus();

Hier wird per trace und als Rückgabe-wert der Status des Heartbeats zurück gegeben.

info() : Void

Startet eine "trace" Ausgabe mit den LocalConnection Name, LocalConnection Channel und dessen Status. Wobei mit Status hier nur gemeint ist ob dieses Object einen Verbindungsnamen hat zu welchen es verbunden ist.

ActionScript Code:
var lc_master = new de.markusbordihn.flash.asLocalConnect('Master'); lc_master.info();

Der Channel gibt an wie viele Verbindungen mit den selben Namen derzeit auf diesen PC gestartet sind. Dies stellt sicher das die selben Flashdateien in mehreren Browser Fenster ungestört kommunizieren können.

close() : Void

Beendet die LocalConnection und auch ggf. den Heartbeat.

ActionScript Code:
var lc_master = new de.markusbordihn.flash.asLocalConnect('Master'); // Status vor close() abfragen lc_master.info(); // Verbindung schließen trace('- - -'); lc_master.close(); // Status erneut abfragen lc_master.info();

Hier wird die Verbindung mit den Namen Master beendet.

Ereignisse

Die Ereignisse sind die Hauptbestandteile von asLocalConnect mit Hilfe dieser Ereignisse ist es möglich genau zu steuern wie sich die Flashdatei verhalten solle wenn alle anderen asLocalConnect Objekte vorhanden sind oder falls hier die Verbindung wieder getrennt wird.

onLoad(onLoad_function:Function) : Void

Dieses Ereignis wird aufgerufen sobald alle Verbindungen die über heartbeat angegeben worden sind verfügbar sind.
Man sollte also hier Befehle hinterlegen die ausgeführt werden sollen wenn alle Objekte vorhanden sind.

ActionScript Code:
var lc_flasha = new de.markusbordihn.flash.asLocalConnect('FlashA'); lc_flasha.onLoad(function () { show_ff(true); lc_flasha.send('FlashB', 'rec_text', "Hello World"); status = "Conneted"; }); lc_flasha.heartbeat('FlashB');

Sobald also FlashB verfügbar ist, wird in FlashA die Function show_ff(true) ausgeführt und es wird "Hello World" an FlashB geschickt.
Außerdem wird status auf "Connected" gesetzt, da man hier davon ausgehen kann das die Verbindung besteht.

onUnload(onUnload_function:Function) : Void

Dieser Ereignis wird aufgerufen falls die Verbindung nach einer erfolgreichen Verbindung wieder beendet wird.
Damit kann man sehr einfach feststellen wenn ein User die andere Flashdatei geschlossen hat.

ActionScript Code:
var lc_flasha = new de.markusbordihn.flash.asLocalConnect('FlashA'); lc_flasha.onUnload(function () { show_ff(false); status = "Disconnected"; }); lc_flasha.heartbeat('FlashB');

Wenn FlashA also die Verbindung zu FlashB verliert wird die Function show_ff(false) ausgeführt und der Status wird auf "Disconnected" gestellt.

onHeartBeat(HeartBeat_function:Function) : Void

Dieser Ereignis wird bei jedem Heartbeat aufgerufen, wie oft ein Heartbeat erfolgt wird anhand der zu überwachenden asLocalConnect Objekten festgelegt.
Man kann über dieses Ereignis einen MovieClip von vorne starten lassen, welcher dann den Heartbeat grafisch anzeigt.

ActionScript Code:
var lc_flasha = new de.markusbordihn.flash.asLocalConnect('FlashA'); lc_flasha.onHeartBeat(function () { bumper.gotoAndPlay(1); }); lc_flasha.heartbeat('FlashB');

In diesem Beispiel wird bei jedem HeartBeat der MovieClip Bumper von vorne gestartet.