mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 14:55 Benutzername: Passwort: Auto-Login

Thema: Von mir zu Dir oder wie man Flashdateien kommunizieren läßt. vom 28.07.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> Von mir zu Dir oder wie man Flashdateien kommunizieren läßt.
Autor Nachricht
phihochzwei
Moderator
Threadersteller

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Fr 28.07.2006 12:00
Titel

Von mir zu Dir oder wie man Flashdateien kommunizieren läßt.

Antworten mit Zitat Zum Seitenanfang

Aus gegebenem Anlass:

Man stelle sich vor, man hat eine Website. Diese Website hat verschiedene Flash-Bausteine die miteinander kommunizieren sollen. Oder man hat zwei Websites, mit jeweils einem Flashbaustein, und diese beiden sollen miteinander kommunizieren. Oder.... Oder.... Oder.....

Wie auch immer, wir wollen zwei Flashfilme miteinander reden lassen. Nun gibt es die recht umständlichen Methoden per Javascript/fscommand oder auch, ganz nerdy, über den Server per XML-Socket. +

Das ist uns aber viel zu viel gefummel. Deswegen der Begriff der Stunde "LOCAL CONNECTION".

Stellt euch eine LocalConnection wie eine virtuelle Telefonleitung zwischen mehreren SWF-Dateien vor, über die ihr Daten schicken könnt oder eine Funktion in Film 1 aus Film 2 herraus auslösen.



Um das ganze mal zu veranschaullichen, hier mal eine einfache Demo:
http://flaming-art.com/MGI/connect1.html
http://flaming-art.com/MGI/connect2.html


Wenn man nun in "Connect2" einen text eingibt und auf "Send...." klickt, sendet Connect2 den Inhalt des Textfeldes per LocalConnection an "Connect1".


Im Code sieht das dann so aus.
Als erstes mal "Connect1":

Code:

 // Wir erzeugen ein Verbindungsobject
var Verbindung_lc:LocalConnection = new LocalConnection();
//////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////
// Nun schreiben wir uns eine lustige kleine Funktion , die was macht.
// In diesem Falle, einfach einen Text in einem Textfeld anzeigen.
// Die Funktion kann man nennen wie man will
Verbindung_lc.remoteFunction = function(Text:String) {
   output_txt.text = Text;
};
//////////////////////////////////////////////////////////////////////////

// Nun sagen wir dem oben erzeugen Verbindungsobject, das es eine Verbindung
// mit dem Namen "Verbindung" aufbauen soll. Diese Verbindung kann beliebig
// benannt werden
Verbindung_lc.connect("Verbindung");
//////////////////////////////////////////////////////////////////////////

// Hier erzeugen wir ein Textfeld zur Ausgabe des zu Empfangenen Textes
this.createTextField("output_txt", 1, 5, 5, 200, 60);
output_txt.border = true;
//////////////////////////////////////////////////////////////////////////



Nun brauchen wir natürlich noch was in "Connect2":

Code:

// Hier bauen wir ein lustiges Texteingabefeld
var input_txt:TextField = this.createTextField("input_txt", 666, 5, 5 , 200,60);
input_txt.type = "input";
input_txt.border = true
//////////////////////////////////////////////////////////////////////////

// Hier noch einen lustigen Send-Button
var SendButton_mc:MovieClip = this.createEmptyMovieClip("SendButton_mc", 667);
with(SendButton_mc){
   _x = 5;
   _y = 70;
   lineStyle(0.25,0x0000,100);
   beginFill(0xFFFFFF,100);
   lineTo(200,0);
   lineTo(200,20);
   lineTo(0,20);
   lineTo(0,0);
}
//////////////////////////////////////////////////////////////////////////

// Das Textformat für den Send-Button
var labelFormat:TextFormat = new TextFormat();
labelFormat.align = "center";

var label_txt:TextField = this.createTextField("input_txt", 668, 5, 70 , 200,20);
label_txt.selectable = false
label_txt.setNewTextFormat(labelFormat)

label_txt.text = "send message to other file";
//////////////////////////////////////////////////////////////////////////


// Nun das Verbindungsobject für diesen Film
var Verbindung_lc:LocalConnection = new LocalConnection();
//////////////////////////////////////////////////////////////////////////

// Nun senden wir Daten über die Verbindung, von diesem Film in den anderen
// Wir führen die im 1. Film definierte Funktion aus und übergeben als Parameter
// den Inhalt des Texteingabefelds;
SendButton_mc.onRelease = function(){
   Verbindung_lc.send("Verbindung", "remoteFunction", input_txt.text);
}
//////////////////////////////////////////////////////////////////////////


Die Anwendungsmöglichkeiten sind sehr vielfältig hierfür. Framebasierte Websites, kombinierte Online/Offline-Anwendungen oder auch Websites mit mehreren Fenstern, z.B. Popups.

Download der FLA´s unter : http://flaming-art.com/MGI/local_connect.rar


Schönen Tach auch.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
God-Zilla

Dabei seit: 07.02.2006
Ort: Mainz
Alter: 36
Geschlecht: Männlich
Verfasst Di 08.09.2009 21:25
Titel

Antworten mit Zitat Zum Seitenanfang

Ich habe gerade große Schwierigkeiten mit der localConnection, die ich herstellen möchte.
Als Anleitung habe ich mir folgendes hergenommen (und zwar natürlich die AS3-Variante):
http://flash.area-network.de/actionscript/grundlagen/localconnection/#definition_as3

Die Connection, die ich damit hergestellt habe funktioniert auch ganz wunderbar im Firefox inklusive aller Tests.
In Safari funktioniert offenbar nur das Senden. Das Empfänger-SWF empfängt in Safari nichts. Habe ich aber eine Sender-Instanz in Safari offen und eine Empfänger-Instanz in FF, dann funktioniet die Kommunikation! Innerhalb von Safari nicht.

Es wäre toll, wenn irgendein Safari- und FF-Nutzer das ganze mal testen könnte, um meine Beobachtung zu bestätigen oder zu widerlegen.
http://flash.area-network.de/actionscript/grundlagen/localconnection/#definition_as3
Ganz unten auf der Website gibt es ein Funktionsbeispiel. Selbes Problem.

Und Wenn jemand weiß, woran das ganze liegt, das wäre das aller beste, hehe.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
phihochzwei
Moderator
Threadersteller

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Mi 09.09.2009 08:19
Titel

Antworten mit Zitat Zum Seitenanfang

Ich kann mir hier leider keinen Safari installieren. Wenn heute nachmittag noch keiner mit was um die Ecke gekommen ist, kuck ich aber gern mal, was ich rausfinden kann
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
God-Zilla

Dabei seit: 07.02.2006
Ort: Mainz
Alter: 36
Geschlecht: Männlich
Verfasst Mi 09.09.2009 15:27
Titel

Antworten mit Zitat Zum Seitenanfang

Danke!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht: Männlich
Verfasst Mi 09.09.2009 15:46
Titel

Antworten mit Zitat Zum Seitenanfang

Würde der Link funktionieren, würde ich’s testen. Hatte bisher aber nie Probleme damit.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
God-Zilla

Dabei seit: 07.02.2006
Ort: Mainz
Alter: 36
Geschlecht: Männlich
Verfasst Mi 09.09.2009 21:09
Titel

Antworten mit Zitat Zum Seitenanfang

Irgendwie klar, dass jetzt, da ich eine Info dazu brauche, gleich die ganze Website down ist.
Dann hier also meine Tester und der dazugehörige Code:

http://www.la-revolution.net/test/sender.swf
http://www.la-revolution.net/test/empfaenger.swf

Sender:
Code:
import flash.net.LocalConnection;
var sender_lc:LocalConnection = new LocalConnection();

pause_btn.addEventListener(MouseEvent.CLICK,
                     function(evt:MouseEvent){
                      sender_lc.send("lc_empfaenger", "funktion_test", "YEAH");
                     });


Empfänger:
Code:
import flash.net.LocalConnection;
var empfaenger_lc:LocalConnection = new LocalConnection();
empfaenger_lc.connect("lc_empfaenger");
function funktion_test(param:String):void {
   txt.text = param;
}
empfaenger_lc.client = this;
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht: Männlich
Verfasst Do 10.09.2009 08:35
Titel

Antworten mit Zitat Zum Seitenanfang

Safari 4.0.3 --> „YEAH” kommt ganz normal an – keine Probleme
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
God-Zilla

Dabei seit: 07.02.2006
Ort: Mainz
Alter: 36
Geschlecht: Männlich
Verfasst Do 10.09.2009 12:03
Titel

Antworten mit Zitat Zum Seitenanfang

Das ist schon mal gut, danke!
Jemand mit ner älteren Safari-Version am Start?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Flashdateien in Indesign platzieren und als pdf exportieren?
Können zwei .swf-Dateien kommunizieren ?
DIV mit FLV lässt sich nicht ausblenden
PS 7.0: Pipette lässt alle hängen!
Dreamweaver lässt keine Erweiterungen zu
db lässt sich nicht richtg auslesen
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.