| Paket | flash.net |
| Klasse | public class LocalConnection |
| Vererbung | LocalConnection EventDispatcher Object |
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
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.
Siehe auch
| Eigenschaft | Definiert von | ||
|---|---|---|---|
| client : Object
Gibt das Objekt an, bei dem Rückrufmethoden aufgerufen werden.
| LocalConnection | ||
![]() | constructor : 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 | ||
![]() | prototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
| Object | |
| Methode | Definiert von | ||
|---|---|---|---|
|
Erstellt ein LocalConnection-Objekt.
| LocalConnection | ||
![]() |
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 | |
|
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 | ||
|
Bereitet ein LocalConnection-Objekt auf den Empfang von Befehlen eines send()-Befehls vor (das so genannte sendende LocalConnection-Objekt).
| LocalConnection | ||
![]() |
Sendet ein Ereignis in den Ereignisablauf.
| EventDispatcher | |
![]() |
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
| EventDispatcher | |
![]() |
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
| Object | |
![]() |
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
| Object | |
![]() |
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
| Object | |
![]() |
Entfernt einen Listener aus dem EventDispatcher-Objekt.
| EventDispatcher | |
|
Ruft die Methode "methodName" für eine mit der Methode "connect(connectionName)" geöffnete Verbindung auf (das so genannte empfangende LocalConnection-Objekt).
| LocalConnection | ||
![]() |
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
| Object | |
![]() |
Gibt das angegebene Objekt als String zurück.
| Object | |
![]() |
Gibt den Grundwert des angegebenen Objekts zurück.
| Object | |
![]() |
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner vorangegangenen Elementen ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
| EventDispatcher | |
| Ereignis | Übersicht | Definiert von | ||
|---|---|---|---|---|
![]() | 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 | |||
![]() | 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 | |||
| client | Eigenschaft |
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.
public function get client():Object public function set client(value:Object):void TypeError — Die client-Eigenschaft muss auf ein Objekt eingestellt werden, das nicht null ist.
|
Siehe auch
| domain | Eigenschaft |
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.
public function get domain():String Siehe auch
| 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
| 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:
|
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:
|
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.
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:
connectionName nicht mit einem Unterstrich (_) beginnt, fügt Flash Player ein Präfix mit der Superdomäne und einen Doppelpunkt hinzu (z. B. "myDomain:connectionName"). Dies stellt zwar sicher, dass es keinen Konflikt zwischen Ihrer Verbindung und gleichnamigen Verbindungen aus anderen Domänen gibt, allerdings müssen sendende LocalConnection-Objekte ebenfalls diese Superdomäne angeben (z. B. "myDomain:connectionName"). Wenn die SWF-Datei mit dem empfangenden LocalConnection-Objekt in eine andere Domäne verschoben wird, ändert der Player das Präfix entsprechend der neuen Superdomäne (z. B. "anotherDomain:connectionName"). Alle sendenden LocalConnection-Objekte müssen dann manuell bearbeitet werden, damit sie auf die neue Superdomäne verweisen.connectionName mit einem Unterstrich beginnt (z. B. "_connectionName"), fügt Flash Player dem String kein Präfix hinzu. Das heißt, empfangende und sendende LocalConnection-Objekte verwenden identische Strings für connectionName. Wenn das empfangende Objekt mit allowDomain() angibt, dass Verbindungen von allen Domänen zulässig sind, können Sie die SWF-Datei mit dem empfangenden LocalConnection-Objekt in eine andere Domäne verschieben, ohne die sendenden LocalConnection-Objekte zu ändern.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.
|
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:
connectionName sowohl für das sendende als auch für das empfangende LocalConnection-Objekt mit einem Unterstrich (_). Geben Sie in der SWF-Datei mit dem empfangenden Objekt mit LocalConnection.allowDomain() an, dass Verbindungen von allen Domänen akzeptiert werden. Mit dieser Implementierung können Sie sendende und empfangende SWF-Dateien in jeder Domäne speichern.connectionName in das sendende LocalConnection-Objekt ein — z. B. myDomain.com:myConnectionName. Geben Sie im empfangenden Objekt mit LocalConnection.allowDomain() an, dass Verbindungen von der angegebenen Superdomäne akzeptiert werden (in diesem Fall myDomain.com) oder dass Verbindungen von allen Domänen akzeptiert werden.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.
|
securityError: — 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: — 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. |
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
| asyncError | Ereignis |
flash.events.AsyncErrorEvent 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 KonstanteAsyncErrorEvent.ASYNC_ERROR definiert den Wert der type-Eigenschaft eines asyncError-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Objekt, bei dem der Netzwerkvorgang fehlschlägt. |
error | Der Fehler, der das Ereignis ausgelöst hat. |
| securityError | Ereignis |
flash.events.SecurityErrorEvent 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.
SecurityErrorEvent.SECURITY_ERROR definiert den Wert der type-Eigenschaft eines securityError-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Netzwerkobjekt, das den Sicherheitsfehler ausgibt. |
text | Der als Fehlermeldung anzuzeigende Text. |
Siehe auch
| status | Ereignis |
flash.events.StatusEvent 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.
type eines status-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
code | Eine Beschreibung des Objektstatus. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
Ebene | Die Kategorie der Meldung, z. B. "status", "warning" oder "error". |
target | Das Objekt, dessen Status gemeldet wird. |
Siehe auch
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);
}
}
}
// 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