Anzeige
Tutorialbeschreibung

Datenaustausch zwischen zwei Flash-Filmen per LocalConnection

Datenaustausch zwischen zwei Flash-Filmen per LocalConnection

In diesem Tutorial geht es darum, Daten zwischen zwei Flash-Filmen auszutauschen, die auf dem gleichen Rechner laufen. Dazu wird das LocalConnection-Objekt verwendet. Das Tutorial richtet sich an fortgeschrittene ActionScript-Programmierer.


Local Connection Tutorial

Es kommt immer wieder einmal vor, dass zwei gleichzeitig laufende Flash-Filme Daten miteinander austauschen müssen.

Der übliche Weg des Austauschs besteht über den Actionscript-Befehl fscommand(). Ein großer Nachteil diesesVerfahrens liegt darin, dass die Kopplung der Flashfilme über einen Container erfolgt. Das macht nicht nur den Test kompliziert (ich muss mir erst einen Container bauen, in dem ich dann die Zusammenarbeit der Filme testen kann), sondern lagert auch einen Teil der Logik aus den Flash-Filmen in den Container aus.

Glücklicherweise hat Macromedia dieses Problem erkannt und seit FlashMX eine Lösung geliefert. Diese heißt LocalConnection-Objekt.

Mit Hilfe eines solchen Objekts können zwei Flash-Filme auf dem gleichen Rechner ohne Container Daten austauschen.

Als Beispiel für die Arbeit mit diesem Objekt wollen wir eine kleine Chat-Anwendung erstellen. Die ist nicht sehr sinnvoll, denn wer chattet schon mit sich selbst auf der gleichen Maschine? Aber die Funktion des Objekts ist dabei gut nachzuvollziehen.

 

Beginnen wir also:

  1. Wir beginnen mit einem Flash-Film, auf dem wir ein dynamisches Textfeld positionieren. Im Feld Var: im Eigenschaftsinspektor geben wir _root.dyntext ein (das ist der Variablenname, der später den angezeigten Text enthält). Im Skript des einzigen Schlüsselbilds setzen wir die Variable auf einen leeren String:

    _root.dyntext="";
  2. Wenn wir den Film jetzt testen, sehen wir, wie zu erwarten, nichts. Jetzt beginnt der spannende Teil. Wir müssen den Film jetzt in die Lage versetzen, auf Nachrichten von „draußen“ zu hören. Dazu dient das LocalConnection-Objekt. Also legen wir eines an:

    myCon=new LocalConnection();
  3. Diesem Objekt weisen wir nun eine Funktion zu, die später von einem anderen Flash-Film aufgerufen werden kann:

    myCon.hoeren=function(pText){
         _root.dyntext=pText;
    }
  4. Bisher fand alles innerhalb des Films statt. Jetzt muss die Schnittstelle, quasi das „Ohr“, zur Außenwelt erstellt werden. Dazu dient die connect-Methode des LocalConnection-Objekts:

    myCon.connect("empfang");
  5. Damit wäre der Empfangsteil fertig und wir können mit dem Sender anfangen. Dazu erstellen wir wieder einen leeren Flash-Film und legen darauf ein Eingabefeld an. Im Feld Var: des Eigenschaftsinspektors geben wir _root.eingabe als Variable an. Die Variable wird wieder mit einem leeren String initialisiert.
  6. Im nächsten Schritt legen wir wieder ein LocalConnection-Objekt an:

    mySender=new LocalConnection();
  7. Um den Inhalt der Variablen _root.eingabe abzuschicken, legen wir einen Button an, den wir submit_btn nennen.
  8. Das Senden der Variablen soll bei Klick auf den Submit-Button erfolgen, also müssen wir einen Handler für diesen Button definieren:

    _root.submit_btn.onPress=function(){
                //Hier wird der Sende-Aufruf  eingegeben
    }
  9. Das eigentliche Senden erfolgt mit der send-Methode des LocalConnection-Objekts. Diese Methode hat als ersten Parameter den Namen der empfangenden Verbindung. Dieser Name wurde im Empfangs-Film in der connect-Methode definiert (hier also „empfang“). Der zweite Parameter ist der Name der Methode, die im Zielobjekt aufgerufen werden soll. Auch diese Methode wurde im Empfangsobjekt definiert, sie heißt hier „hoeren“. Diese beiden Namen werden als String übergeben, müssen also in Anführungszeichen gesetzt werden. Die folgenden Parameter der send-Methode sind die Parameter der aufgerufenen Methode des Zielobjekts, hier also ein einzelner String. Da dem Empfangsobjekt (genauer: der hoeren-Methode des Empfangs-Objekts) der Inhalt der Variablen _root.eingabe übergeben werden soll, können wir diese Variable einfach verwenden. Der Aufruf, der den Kommentar im onPress-Handler des Submit-Buttons ersetzt, sieht also folgendermaßen aus:

    _root.mySender.send("empfang","hoeren",_root.eingabe);
  10. Damit ist der Sender-Film auch bereits fertig. Werden jetzt beide Filme gestartet, so kann im Senderfilm ein String eingegeben werden und nach Anklicken des Submit-Buttons erscheint der String im Empfänger-Film.

Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von Photoshopper1993
  • 08.12.2007 - 18:27

öhh.....
Nunja.... wie soll mans sagen!
Is bestimmt alles Richtig, aberich versteh kein Wort!
EIn Paar Bilder vielleicht?!

Portrait von Makli
  • 11.12.2007 - 12:35

Naja, bei Programmiertutorials sind die Bilder halt die Codezeilen, das reicht meistens aus. Oder wäre ein Screenshot des Editors mit den Codezeilen besser ;-)

Nichts für ungut!

Makli

x
×
×