Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
phihochzwei
Moderator Threadersteller
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Fr 28.07.2006 13:00
Titel Von mir zu Dir oder wie man Flashdateien kommunizieren läßt. |
|
|
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.
|
|
|
|
|
God-Zilla
Dabei seit: 07.02.2006
Ort: Mainz
Alter: 36
Geschlecht:
|
Verfasst Di 08.09.2009 22:25
Titel
|
|
|
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.
|
|
|
|
|
Anzeige
|
|
|
phihochzwei
Moderator Threadersteller
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Mi 09.09.2009 09:19
Titel
|
|
|
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
|
|
|
|
|
God-Zilla
Dabei seit: 07.02.2006
Ort: Mainz
Alter: 36
Geschlecht:
|
Verfasst Mi 09.09.2009 16:27
Titel
|
|
|
Danke!
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Mi 09.09.2009 16:46
Titel
|
|
|
Würde der Link funktionieren, würde ich’s testen. Hatte bisher aber nie Probleme damit.
|
|
|
|
|
God-Zilla
Dabei seit: 07.02.2006
Ort: Mainz
Alter: 36
Geschlecht:
|
Verfasst Mi 09.09.2009 22:09
Titel
|
|
|
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; |
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Do 10.09.2009 09:35
Titel
|
|
|
Safari 4.0.3 --> „YEAH” kommt ganz normal an – keine Probleme
|
|
|
|
|
God-Zilla
Dabei seit: 07.02.2006
Ort: Mainz
Alter: 36
Geschlecht:
|
Verfasst Do 10.09.2009 13:03
Titel
|
|
|
Das ist schon mal gut, danke!
Jemand mit ner älteren Safari-Version am Start?
|
|
|
|
|
|
|
|
Ähnliche Themen |
Flashdateien in Indesign platzieren und als pdf exportieren?
Können zwei .swf-Dateien kommunizieren ?
PS 7.0: Pipette lässt alle hängen!
Dreamweaver lässt keine Erweiterungen zu
DIV mit FLV lässt sich nicht ausblenden
TIFF lässt sich nicht öffnen
|
|
|
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.
|
|