Paketflash.net
Klassepublic class LocalConnection
VererbungLocalConnection Inheritance EventDispatcher Inheritance Object

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Mit der LocalConnection-Klasse können Sie ein LocalConnection-Objekt erstellen, das eine Methode in einem anderen LocalConnection-Objekt innerhalb einer oder zwischen mehreren SWF-Dateien aufrufen kann. Lokale Verbindungen ermöglichen diese Art von Kommunikation zwischen SWF-Dateien ohne Verwendung von fscommand() oder JavaScript. LocalConnection-Objekte können nur zwischen SWF-Dateien ausgetauscht werden, die auf demselben Client-Computer abgespielt werden. Sie können jedoch in verschiedenen Anwendungen ausgeführt werden. Beispielsweise kann die eine SWF-Datei in einem Browser, eine andere in einem Projektor abgespielt werden.

In ActionScript 3.0 erstellte LocalConnection-Objekte können mit LocalConnection-Objekten kommunizieren, die in ActionScript 1.0 oder 2.0 erstellt wurden. Dasselbe gilt umgekehrt: In ActionScript 1.0 oder 2.0 erstellte LocalConnection-Objekte können mit LocalConnection-Objekten kommunizieren, die in ActionScript 3.0 erstellt wurden. Flash Player verarbeitet die Kommunikation zwischen LocalConnection-Objekten verschiedener Versionen automatisch.

Um zu verdeutlichen, wie LocalConnection-Objekte für die Kommunikation zwischen zwei SWF-Dateien verwendet werden, ist es hilfreich, die in jeder der Dateien verwendeten Befehle zu kennen. Eine SWF-Datei wird als sendende SWF-Datei bezeichnet. Diese Datei enthält die aufzurufende Methode. Die sendende SWF-Datei muss ein LocalConnection-Objekt und einen Aufruf der Methode send() enthalten. Die andere SWF-Datei wird als empfangende SWF-Datei bezeichnet. Diese Datei ruft die Methode auf. Die empfangende SWF-Datei muss ein anderes LocalConnection-Objekt und einen Aufruf der Methode connect() enthalten.

Die Verwendung der Methoden send() und connect() ist unterschiedlich und hängt davon ab, ob sich die SWF-Dateien in derselben Domäne, in verschiedenen Domänen mit bekannten Domänennamen oder in verschiedenen Domänen mit unbekannten oder dynamischen Domänennamen befinden. In den folgenden Abschnitten werden diese drei Situationen mit entsprechenden Codebeispielen erläutert.

Gleiche Domäne: Die einfachste Art der Verwendung von LocalConnection-Objekten besteht darin, die Kommunikation nur zwischen LocalConnection-Objekten zuzulassen, die sich in derselben Domäne befinden, da Flash Player die Kommunikation innerhalb derselben Domäne standardmäßig unterstützt. Für die Kommunikation von zwei SWF-Dateien innerhalb derselben Domäne müssen Sie keine speziellen Sicherheitsmaßnahmen implementieren. Sie übergeben einfach denselben Wert für den Parameter connectionName an die Methode connect() und an die Methode send():

Unterschiedliche Domänen mit bekannten Domänennamen: Für die Kommunikation von zwei SWF-Dateien in unterschiedlichen Domänen müssen Sie die Kommunikation zwischen den Domänen zulassen, indem Sie die Methode allowDomain() aufrufen. Außerdem müssen Sie den Verbindungsnamen in der Methode send() mit dem Domänennamen des empfangenden LocalConnection-Objekts qualifizieren:

Unterschiedliche Domänen mit unbekannten Domänennamen: In einigen Fällen ist es erforderlich, die Portierbarkeit der SWF-Datei mit dem empfangenden LocalConnection-Objekt zwischen Domänen zu erhöhen. Um Flash Player anzuweisen, dass das sendende und das empfangende LocalConnection-Objekt sich in unterschiedlichen Domänen befinden, ohne den Domänennamen in der Methode send() anzugeben, fügen Sie im Aufruf von connect() und send() am Anfang des Verbindungsnamens einen Unterstrich (_) hinzu. Um die Kommunikation zwischen den beiden Domänen zuzulassen, rufen Sie die Methode allowDomain() auf, und übergeben Sie die Domänen, von denen LocalConnection-Aufrufe zugelassen werden sollen. Sie können auch das Platzhalterargument ( übergeben, um Aufrufe von allen Domänen zuzulassen:

Sie können LocalConnection-Objekte zum Senden und Empfangen von Daten innerhalb einer SWF-Datei verwenden. Dies ist jedoch nicht gebräuchlich.

Weitere Informationen zu den Methoden send() und connect() finden Sie in den Erläuterungen zum Parameter connectionName unter den Einträgen zu LocalConnection.send() und LocalConnection.connect(). Siehe auch die Einträge zu allowDomain() und domain.

Beispiele anzeigen

Siehe auch

flash.net.LocalConnection.send()
flash.net.LocalConnection.allowDomain()
flash.net.LocalConnection.domain
Herstellen einer Verbindung mit anderen Flash Player-Instanzen


Öffentliche Eigenschaften
 EigenschaftDefiniert von
  client : Object
Gibt das Objekt an, bei dem Rückrufmethoden aufgerufen werden.
LocalConnection
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  domain : String
[read-only] Ein String, der die Domäne des Pfads der aktuellen SWF-Datei angibt.
LocalConnection
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
Öffentliche Methoden
 MethodeDefiniert von
  
Erstellt ein LocalConnection-Objekt.
LocalConnection
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
EventDispatcher
  
allowDomain(... domains):void
Gibt eine oder mehrere Domänen an, die LocalConnection-Aufrufe an diese LocalConnection-Instanz senden können.
LocalConnection
  
Gibt eine oder mehrere Domänen an, die LocalConnection-Aufrufe an dieses LocalConnection-Objekt senden können.
LocalConnection
  
Schließt das LocalConnection-Objekt (bricht die Verbindung ab).
LocalConnection
  
connect(connectionName:String):void
Bereitet ein LocalConnection-Objekt auf den Empfang von Befehlen eines send()-Befehls vor (das so genannte sendende LocalConnection-Objekt).
LocalConnection
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
  
send(connectionName:String, methodName:String, ... arguments):void
Ruft die Methode "methodName" für eine mit der Methode "connect(connectionName)" geöffnete Verbindung auf (das so genannte empfangende LocalConnection-Objekt).
LocalConnection
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner vorangegangenen Elementen ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 EreignisÜbersicht Definiert von
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
   Wird ausgelöst, wenn eine Ausnahme asynchron ausgelöst wird – das heißt, aus nativem asynchronem Code.LocalConnection
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus verliert und inaktiv wird.EventDispatcher
   Wird ausgelöst, wenn mit einem Aufruf von "LocalConnection.send()" versucht wird, Daten an eine andere Sicherheits-Sandbox zu senden.LocalConnection
   Wird ausgelöst, wenn der Status eines LocalConnection-Objekts protokolliert wird.LocalConnection
Eigenschaftsdetail
clientEigenschaft
client:Object  [read-write]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt das Objekt an, bei dem Rückrufmethoden aufgerufen werden. Standardeinstellung ist das erstellte LocalConnection-Objekt this. Wenn Sie die client-Eigenschaft auf ein anderes Objekt einstellen, werden die Rückrufmethoden bei dem eingestellten Objekt aufgerufen.


Implementierung
    public function get client():Object
    public function set client(value:Object):void

Auslöser
TypeError — Die client-Eigenschaft muss auf ein Objekt eingestellt werden, das nicht null ist.

Siehe auch

domainEigenschaft 
domain:String  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Ein String, der die Domäne des Pfads der aktuellen SWF-Datei angibt.

In für Flash Player 9 oder neuere Versionen veröffentlichten SWF-Dateien entspricht der zurückgegebene String der exakten Domäne der aktuellen SWF-Datei, einschließlich Subdomänen. Wenn die SWF-Datei beispielsweise unter "www.adobe.com" gespeichert ist, gibt dieser Befehl "www.adobe.com" zurück.

Wenn die aktuelle SWF-Datei eine lokale Datei auf dem Client-Computer ist, gibt dieser Befehl "localhost" zurück.

Gewöhnlich wird bei dieser Eigenschaft der Domänenname des sendenden LocalConnection-Objekts als Parameter in die Methode einbezogen, die Sie im empfangenden LocalConnection-Objekt oder mit LocalConnection.allowDomain() aufrufen möchten, um Befehle von einer angegebenen Domäne zu akzeptieren. Wenn Sie den Datenaustausch nur zwischen LocalConnection-Objekten derselben Domäne aktivieren, ist diese Eigenschaft nicht erforderlich.


Implementierung
    public function get domain():String

Siehe auch

Konstruktordetail
LocalConnection()Konstruktor
public function LocalConnection()

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt ein LocalConnection-Objekt. Mit LocalConnection-Objekten können Sie die Kommunikation zwischen verschiedenen SWF-Dateien auf demselben Client-Computer ermöglichen.

Siehe auch

Methodendetail
allowDomain()Methode
public function allowDomain(... domains):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt eine oder mehrere Domänen an, die LocalConnection-Aufrufe an diese LocalConnection-Instanz senden können.

Sie können diese Methode nicht verwenden, um SWF-Dateien, die mit einem sicheren Protokoll (HTTPS) gehostet werden, den Zugriff von SWF-Dateien zu erlauben, die in nicht sicheren Protokollen gehostet werden. Sie müssen stattdessen die Ereignisprozedur allowInsecureDomain() verwenden.

Sie sollten diese Methode verwenden, damit eine untergeordnete SWF-Datei von einer anderen Domäne LocalConnection-Aufrufe an die übergeordnete SWF-Datei vornehmen kann, ohne dass die endgültige Domäne bekannt ist, aus der die untergeordnete SWF-Datei stammt. Dies ist beispielsweise der Fall, wenn Sie Weiterleitungen mit Lastausgleich oder Server von Dritten verwenden. In diesem Fall können Sie die Eigenschaft url des mit der Ladung verwendeten LoaderInfo-Objekts einsetzen, um die Domäne dazu zu bewegen, die Methode allowDomain() anzuwenden. Wenn Sie beispielsweise mit einem Loader-Objekt eine untergeordnete SWF-Datei laden, können Sie, sobald der Ladevorgang abgeschlossen ist, die Eigenschaft contentLoaderInfo.url des Loader-Objekts überprüfen und die Domäne anhand der vollständigen URL parsen. Wenn Sie so verfahren, müssen Sie unbedingt warten, bis die SWF-Datei geladen wurde, denn die contentLoaderInfo.url-Eigenschaft verfügt erst, nachdem die Datei vollständig geladen wurde, über ihren endgültigen, korrekten Wert.

Es kann auch die entgegengesetzte Situation auftreten: Angenommen, Sie haben eine untergeordnete SWF-Datei erstellt, die LocalConnection-Aufrufe von der übergeordnete SWF-Datei annehmen möchte, der aber die Domäne der übergeordneten SWF-Datei nicht bekannt ist. In diesem Fall implementieren Sie diese Methode, indem Sie prüfen, ob das Domänenargument mit der Domäne der Eigenschaft loaderInfo.url in der geladenen SWF-Datei übereinstimmt. Auch diesmal müssen Sie die Domäne anhand der vollständigen URL von loaderInfo.url parsen. In diesem Fall müssen Sie jedoch nicht warten, bis die übergeordnete SWF-Datei geladen wurde, denn das Laden der übergeordneten Datei ist bereits abgeschlossen, wenn der Ladevorgang für die untergeordnete SWF-Datei erfolgt.

Bedenken Sie beim Einsatz dieser Methode das Sicherheitsmodell von Flash Player. In der Standardeinstellung wird ein LocalConnection-Objekt mit der Sandbox der erstellenden SWF-Datei verbunden. Domänenübergreifende Aufrufe für LocalConnection-Objekte sind nur dann zulässig, wenn Sie in der empfangenden SWF-Datei die Methode LocalConnection.allowDomain() aufrufen.

Weitere Informationen finden Sie in den folgenden Abschnitten:

Hinweis: Die Form der Methode allowDomain() hat sich geändert. In den früheren Versionen (ActionScript 1.0 und 2.0) war allowDomain eine zu implementierende Rückrufmethode. In ActionScript 3.0 ist allowDomain() eine in den LocalConnection-Aufruf eingebettete Methode. Aufgrund dieser Änderung ist die Methode allowDomain() jetzt mit flash.system.Security.allowDomain() vergleichbar.

Parameter

... domains — Ein oder mehrere Strings mit den Namen der Domänen, von denen Sie LocalConnection-Aufrufe zulassen möchten. Für diesen Parameter gelten zwei Sonderfälle:
  • Sie können das Platzhalterzeichen "*" angeben, um Aufrufe von allen Domänen zuzulassen.
  • Sie können den String "localhost" angeben, um Aufrufe dieser SWF-Datei von lokal installierten SWF-Dateien zuzulassen. In Flash Player 8 wurden Sicherheitsbeschränkungen für lokale SWF-Dateien eingeführt. Standardmäßig haben SWF-Dateien, die auf das Internet zugreifen können, keinen Zugriff auf das lokale Dateisystem. Wenn Sie "localhost" angeben, können alle lokalen SWF-Dateien auf diese SWF-Datei zugreifen.


Auslöser
ArgumentError — Alle angegebenen Parameter müssen Strings mit einem anderen Wert als null sein.

Siehe auch

allowInsecureDomain()Methode 
public function allowInsecureDomain(... domains):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt eine oder mehrere Domänen an, die LocalConnection-Aufrufe an dieses LocalConnection-Objekt senden können.

Die Methode allowInsecureDomain() funktioniert wie die Methode allowDomain(), mit der Ausnahme, dass die Methode allowInsecureDomain() auch das Senden von LocalConnection-Aufrufen an SWF-Dateien aus HTTPS-Quellen durch SWF-Dateien aus Nicht-HTTPS-Quellen zulässt. Dieser Unterschied ist nur von Bedeutung, wenn Sie die Methode allowInsecureDomain() aus einer SWF-Datei aufrufen, die über HTTPS geladen wurde. Sie müssen die Methode allowInsecureDomain() auch bei Nicht-HTTPS-/HTTPS-Verbindungen innerhalb derselben Domäne aufrufen. Standardmäßig sind LocalConnection-Aufrufe von SWF-Dateien aus Nicht-HTTPS-Quellen an SWF-Dateien aus HTTPS-Quellen selbst innerhalb derselben Domäne nicht zulässig.

Der Aufruf von allowInsecureDomain() wird nicht empfohlen, da hierdurch die durch HTTPS gewährleistete Sicherheit möglicherweise gefährdet wird. Wenn Sie eine SWF-Datei über HTTPS laden, können Sie relativ sicher sein, dass diese bei der Übermittlung über das Netzwerk nicht manipuliert wird. Wenn Sie dann LocalConnection-Aufrufe an diese SWF-Datei durch eine SWF-Datei ohne HTTPS zulassen, akzeptieren Sie Aufrufe von einer SWF-Datei, die während der Übertragung möglicherweise manipuliert wurde. In diesem Fall ist extreme Vorsicht geboten, da Sie sich nicht auf die Authentizität der LocalConnection-Aufrufe an die über HTTPS geladene SWF-Datei verlassen können.

Standardmäßig können nur andere SWF-Dateien, die mit dem HTTPS-Protokoll gehostet werden, auf mit dem HTTPS-Protokoll gehostete SWF-Dateien zugreifen. Durch diese Implementierung bleibt die durch das HTTPS-Protokoll gewährleistete Integrität gewahrt.

Der Einsatz dieser Methode zur Umgehung des Standardverhaltens empfiehlt sich nicht, da damit die HTTPS-Sicherheit beeinträchtigt wird. In einigen Fällen ist dies jedoch notwendig. Beispiel: Sie müssen den Zugriff auf für Flash Player 9 oder eine neuere Version veröffentlichte HTTPS-Dateien durch HTTPS-Dateien zulassen, die für Flash Player 6 oder eine ältere Version veröffentlicht wurden.

Weitere Informationen finden Sie in den folgenden Abschnitten:

Parameter

... domains — Ein oder mehrere Strings mit den Namen der Domänen, von denen Sie LocalConnection-Aufrufe zulassen möchten. Für diesen Parameter gibt es zwei Sonderfälle:
  • Sie können das Platzhalterzeichen "*" angeben, um Aufrufe von allen Domänen zuzulassen. Lokale Hosts sind hierbei nicht eingeschlossen.
  • Sie können den String "localhost" angeben, um Aufrufe dieser SWF-Datei von lokal installierten SWF-Dateien zuzulassen. In Flash Player 8 wurden Sicherheitsbeschränkungen für lokale SWF-Dateien eingeführt. SWF-Dateien, die auf das Internet zugreifen können, haben keinen Zugriff auf das lokale Dateisystem. Wenn Sie "localhost" angeben, können alle lokalen SWF-Dateien auf diese SWF-Datei zugreifen. Beachten Sie, dass Sie die aufrufende SWF-Datei bei der Erstellung außerdem als lokale SWF-Datei mit Netzwerkzugang kennzeichnen müssen.


Auslöser
ArgumentError — Alle angegebenen Parameter müssen Strings mit einem anderen Wert als null sein.

Siehe auch

close()Methode 
public function close():void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Schließt das LocalConnection-Objekt (bricht die Verbindung ab). Rufen Sie diesen Befehl auf, wenn das Objekt keine Befehle mehr annehmen soll — beispielsweise, wenn Sie einen connect()-Befehl mit demselben Parameter connectionName in einer anderen SWF-Datei aufrufen möchten.


Auslöser
ArgumentError — Die LocalConnection-Instanz kann nicht geschlossen werden, da sie nicht verbunden ist.

Siehe auch

connect()Methode 
public function connect(connectionName:String):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Bereitet ein LocalConnection-Objekt auf den Empfang von Befehlen eines send()-Befehls vor (das so genannte sendende LocalConnection-Objekt). Das mit diesem Befehl verwendete Objekt ist das empfangende LocalConnection-Objekt. Das empfangende und das sendende Objekt müssen auf demselben Client-Computer ausgeführt werden.

Um eine "Race"-Bedingung zu vermeiden, definieren Sie die mit dem empfangenden LocalConnection-Objekt verknüpften Methoden, bevor Sie diese Methode aufrufen, wie im Beispiel zur Klasse "LocalConnection" gezeigt.

In der Standardeinstellung löst Flash Player connectionName in den Wert "superdomain:connectionName" auf, wobei superdomain die Superdomäne der SWF-Datei mit dem Befehl connect() ist. Wenn sich beispielsweise die SWF-Datei mit dem empfangenden LocalConnection-Objekt unter "www.someDomain.com" befindet, wird connectionName in "someDomain.com:connectionName" aufgelöst. (Wenn sich eine SWF-Datei auf dem Client-Computer befindet, wird superdomain der Wert "localhost" zugewiesen.)

Ebenso lässt Flash Player das empfangende LocalConnection-Objekt nur Befehle von sendenden LocalConnection-Objekten empfangen, deren Verbindungsnamen ebenfalls in den Wert "superdomain:connectionName" aufgelöst werden. Auf diese Weise können in Flash zwischen SWF-Dateien derselben Domäne ganz einfach Daten ausgetauscht werden.

Wenn Sie den Datenaustausch nur zwischen SWF-Dateien in derselben Domäne implementieren, geben Sie einen String für connectionName an, der nicht mit einem Unterstrich (_) beginnt und der keinen Domänennamen angibt (beispielsweise "myDomain:connectionName"). Verwenden Sie denselben String in der Methode connect(connectionName).

Wenn Sie eine Kommunikation zwischen SWF-Dateien in unterschiedlichen Domänen implementieren, lässt sich die Portierbarkeit der SWF-Datei mit dem empfangenden LocalConnection-Objekt erhöhen, indem Sie für connectionName einen String angeben, der mit einem Unterstrich (_) beginnt. Im Folgenden werden zwei mögliche Fälle erläutert:

Nähere Informationen finden Sie in der Übersicht über die Klasse und in der Erörterung zu connectionName in send() sowie in den Einträgen allowDomain() und domain.

Hinweis: Doppelpunkte werden als Sonderzeichen zum Trennen der Superdomäne vom String connectionName verwendet. Ein String für connectionName, der einen Doppelpunkt enthält, ist nicht gültig.

Bedenken Sie beim Einsatz dieser Methode das Sicherheitsmodell von Flash Player. In der Standardeinstellung wird ein LocalConnection-Objekt mit der Sandbox der erstellenden SWF-Datei verbunden. Domänenübergreifende Aufrufe für LocalConnection-Objekte sind nur dann zulässig, wenn Sie in der empfangenden SWF-Datei die Methode LocalConnection.allowDomain() aufrufen. Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie in der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking der Tags object und embed festlegen.

Weitere Informationen finden Sie in den folgenden Abschnitten:

Parameter

connectionName:String — Ein String, der mit dem Verbindungsnamen übereinstimmt, der im Befehl send() für die Kommunikation mit dem empfangenden LocalConnection-Objekt angegeben wurde.


Auslöser
TypeError — Der an den Parameter connectionName übergebene Wert darf nicht null sein.
 
ArgumentError — Dieser Fehler kann drei verschiedene Ursachen haben: 1) Der an den Parameter connectionName übergebene String-Wert war "null". Übergeben Sie einen anderen Wert als "null". 2) Der an den Parameter connectionName übergebene Wert enthielt einen Doppelpunkt (:). Doppelpunkte werden als Sonderzeichen zum Trennen der Superdomäne vom String connectionName in der Methode send() und nicht in der Methode connect() verwendet. 3) Die LocalConnection-Instanz ist bereits verbunden.

Siehe auch

send()Methode 
public function send(connectionName:String, methodName:String, ... arguments):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Ruft die Methode methodName für eine mit der Methode connect(connectionName) geöffnete Verbindung auf (das so genannte empfangende LocalConnection-Objekt). Das mit diesem Befehl verwendete Objekt ist das sendende LocalConnection-Objekt. Die SWF-Dateien, die das sendende und das empfangende Objekt enthalten, müssen auf demselben Client-Computer ausgeführt werden.

Die Menge der Daten, die diesem Befehl als Parameter übergeben werden können, ist auf 40 Kilobyte begrenzt. Wenn send() einen ArgumentError-Fehler auslöst, die verwendete Syntax hingegen korrekt ist, versuchen Sie, die send()-Anfragen in mehrere Befehle aufzuteilen, die jeweils weniger als 40 KB Daten enthalten.

Wie unter dem Eintrag connect() erläutert, fügt Flash Player die aktuelle Superdomäne standardmäßig an connectionName an. Wenn Sie den Datenaustausch zwischen verschiedenen Domänen implementieren, müssen Sie connectionName sowohl im sendenden als auch im empfangenden LocalConnection-Objekt so definieren, dass Flash die aktuelle Superdomäne nicht zu connectionName hinzufügt. Hierzu stehen Ihnen zwei Methoden zur Wahl:

Hinweis: Sie können in connectionName im empfangenden LocalConnection-Objekt keine Superdomäne angeben - dies ist nur im sendenden LocalConnection-Objekt möglich.

Bedenken Sie beim Einsatz dieser Methode das Sicherheitsmodell von Flash Player. In der Standardeinstellung wird ein LocalConnection-Objekt mit der Sandbox der erstellenden SWF-Datei verbunden. Domänenübergreifende Aufrufe für LocalConnection-Objekte sind nur dann zulässig, wenn Sie in der empfangenden SWF-Datei die Methode LocalConnection.allowDomain() aufrufen. Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie in der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking der Tags object und embed festlegen.

Weitere Informationen finden Sie in den folgenden Abschnitten:

Parameter

connectionName:String — Entspricht dem Verbindungsnamen, der im Befehl connect() für die Kommunikation mit dem sendenden LocalConnection-Objekt angegeben wurde.
 
methodName:String — Der Name der im empfangenden LocalConnection-Objekt aufzurufenden Methode. Die folgenden Methodennamen führen zu Fehlern bei der Befehlsausführung: send, connect, close, allowDomain, allowInsecureDomain, client und domain.
 
... arguments — An die angegebene Methode zu übergebende zusätzliche optionale Parameter.


Ereignisse
securityError:SecurityErrorEvent — Es wurde mit "LocalConnection.send()" versucht, mit einer SWF-Datei in einer Sicherheits-Sandbox zu kommunizieren, auf die der aufrufende Code keinen Zugriff hat. Sie können dieses Problem umgehen, indem Sie in der empfangenden SWF-Datei die Methode "LocalConnection.allowDomain()" aufrufen.
 
status:StatusEvent — Wenn die Eigenschaft "level" den Wert "status" aufweist, war der Aufruf erfolgreich; der Wert "error" gibt an, dass der Aufruf fehlgeschlagen ist. Der Aufruf kann fehlschlagen, wenn die empfangende SWF-Datei die Verbindung nicht zulässt.

Auslöser
TypeError connectionName oder methodName weist den Wert "null" auf. Übergeben Sie andere Werte als "null" für diese Parameter.
 
ArgumentError — Dieser Fehler kann folgende Ursachen haben: 1) Der Wert von connectionName oder methodName ist ein leerer String. Übergeben Sie gültige Strings für diese Parameter. 2) Für die in methodName angegebene Methode gelten Beschränkungen. 3) Die gesendete serialisierte Meldung ist zu groß (größer als 40 KB).

Siehe auch

Ereignisdetail
asyncError Ereignis
Ereignisobjekttyp: flash.events.AsyncErrorEvent
AsyncErrorEvent.type property = flash.events.AsyncErrorEvent.ASYNC_ERROR

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird ausgelöst, wenn eine Ausnahme asynchron ausgelöst wird – das heißt, aus nativem asynchronem Code.

Die Konstante AsyncErrorEvent.ASYNC_ERROR definiert den Wert der type-Eigenschaft eines asyncError-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Objekt, bei dem der Netzwerkvorgang fehlschlägt.
errorDer Fehler, der das Ereignis ausgelöst hat.
securityError Ereignis  
Ereignisobjekttyp: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird ausgelöst, wenn mit einem Aufruf von LocalConnection.send() versucht wird, Daten an eine andere Sicherheits-Sandbox zu senden.

Die Konstante SecurityErrorEvent.SECURITY_ERROR definiert den Wert der type-Eigenschaft eines securityError-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, das den Sicherheitsfehler ausgibt.
textDer als Fehlermeldung anzuzeigende Text.

Siehe auch

status Ereignis  
Ereignisobjekttyp: flash.events.StatusEvent
StatusEvent.type property = flash.events.StatusEvent.STATUS

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird ausgelöst, wenn der Status eines LocalConnection-Objekts protokolliert wird. Bei erfolgreichem Aufruf von LocalConnection.send() weist die Eigenschaft level des Ereignisobjekts status den Wert "status" auf. Wenn der Aufruf fehlschlägt, weist die Eigenschaft level den Wert "error" auf. Wenn die empfangende SWF-Datei die Verbindung ablehnt, kann der Aufruf ohne Benachrichtigung an die sendende SWF-Datei fehlschlagen.

Definiert den Wert der Eigenschaft type eines status-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
codeEine Beschreibung des Objektstatus.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
EbeneDie Kategorie der Meldung, z. B. "status", "warning" oder "error".
targetDas Objekt, dessen Status gemeldet wird.

Siehe auch

Beispiele Verwendung von Beispielen
LocalConnectionSenderExample.as

Dieses Beispiel umfasst zwei ActionScript-Klassen, die in zwei separate SWF-Dateien kompiliert werden müssen.

In der SWF-Datei "LocalConnectionSenderExample" wird eine LocalConnection-Instanz erstellt. Wenn der Benutzer auf die Schaltfläche klickt, wird die Methode call() verwendet, um die Methode lcHandler in der SWF-Datei aufzurufen. Der Verbindungsname lautet "myConnection", und der Inhalt der TextField-Instanz wird als Parameter übergeben.

In der SWF-Datei "LocalConnectionReceiverExample" wird eine LocalConnection-Instanz erstellt, und die Methode connect() wird aufgerufen. Diese Methode kennzeichnet die SWF-Datei als Empfänger von Meldungen an die Verbindung mit dem Namen "myConnection". Darüber hinaus umfasst diese Klasse eine öffentliche Methode mit dem Namen lcHandler(). Diese Methode wird in der SWF-Datei "LocalConnectionSenderExample" aufgerufen. Beim Aufrufen dieser Methode wird der als Parameter übergebene Text an die TextField-Instanz auf der Bühne angehängt.

Hinweis: Zum Testen des Beispiels müssen beide SWF-Dateien gleichzeitig auf denselben Computer geladen werden.


// Code in LocalConnectionSenderExample.as
package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.net.LocalConnection;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.events.StatusEvent;
    import flash.text.TextFieldAutoSize;

    public class LocalConnectionSenderExample extends Sprite {
        private var conn:LocalConnection;
        
        // UI elements
        private var messageLabel:TextField;
        private var message:TextField;
        private var sendBtn:Sprite;
        
        public function LocalConnectionSenderExample() {
            buildUI();
            sendBtn.addEventListener(MouseEvent.CLICK, sendMessage);
            conn = new LocalConnection();
            conn.addEventListener(StatusEvent.STATUS, onStatus);
        }
        
        private function sendMessage(event:MouseEvent):void {
            conn.send("myConnection", "lcHandler", message.text);
        }
        
        private function onStatus(event:StatusEvent):void {
            switch (event.level) {
                case "status":
                    trace("LocalConnection.send() succeeded");
                    break;
                case "error":
                    trace("LocalConnection.send() failed");
                    break;
            }
        }
        
        private function buildUI():void {
            const hPadding:uint = 5;
            // messageLabel
            messageLabel = new TextField();
            messageLabel.x = 10;
            messageLabel.y = 10;
            messageLabel.text = "Text to send:";
            messageLabel.autoSize = TextFieldAutoSize.LEFT;
            addChild(messageLabel);
            
            // message
            message = new TextField();
            message.x = messageLabel.x + messageLabel.width + hPadding;
            message.y = 10;
            message.width = 120;
            message.height = 20;
            message.background = true;
            message.border = true;
            message.type = TextFieldType.INPUT;
            addChild(message);
            
            // sendBtn
            sendBtn = new Sprite();
            sendBtn.x = message.x + message.width + hPadding;
            sendBtn.y = 10;
            var sendLbl:TextField = new TextField();
            sendLbl.x = 1 + hPadding;
            sendLbl.y = 1;
            sendLbl.selectable = false;
            sendLbl.autoSize = TextFieldAutoSize.LEFT;
            sendLbl.text = "Send";
            sendBtn.addChild(sendLbl);
            sendBtn.graphics.lineStyle(1);
            sendBtn.graphics.beginFill(0xcccccc);
            sendBtn.graphics.drawRoundRect(0, 0, (sendLbl.width + 2 + hPadding + hPadding), (sendLbl.height + 2), 5, 5);
            sendBtn.graphics.endFill();
            addChild(sendBtn);
        }
    }
}
LocalConnectionReceiverExample.as

// Code in LocalConnectionReceiverExample.as
package {
    import flash.display.Sprite;
    import flash.net.LocalConnection;
    import flash.text.TextField;

    public class LocalConnectionReceiverExample extends Sprite {
        private var conn:LocalConnection;
        private var output:TextField;
        
        public function LocalConnectionReceiverExample()     {
            buildUI();
            
            conn = new LocalConnection();
            conn.client = this;
            try {
                conn.connect("myConnection");
            } catch (error:ArgumentError) {
                trace("Can't connect...the connection name is already being used by another SWF");
            }
        }
        
        public function lcHandler(msg:String):void {
            output.appendText(msg + "\n");
        }
        
        private function buildUI():void {
            output = new TextField();
            output.background = true;
            output.border = true;
            output.wordWrap = true;
            addChild(output);
        }
    }
}




 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/LocalConnection.html