Kommunikation von zwei Flash Instanzen
Aus Wikizone
Flash Filme können über ein Verbindungsobjekt miteinander kommunizieren. Am einfachsten geht das, wenn sie sich auf dem gleichen Rechner / Server befinden. Ansonsten gelten andere Sicherheitsrichtlinien.
Quickstart[Bearbeiten]
Wir erzeugen zwei Filme. Einer dient als Sender und der andere als Empfänger
Der Empfänger Der Empfänger benötigt ein Verbindungsobjekt, eine Verbindung und eine Funktion die über die Verbindung angesprochen wird.
// '''Verbindungsobject''' mit Namen Verbindung_lc erzeugen
var Verbindung_lc:LocalConnection = new LocalConnection();
// Eine Funktion für das Verbindungsobjekt definieren - hier schreibe Text in das Textfeld "output_txt"
Verbindung_lc.schreibeText = function(Text:String) {
output_txt.text = Text;
};
// Eine Verbindung mit dem Namen "meineVerbindung"
Verbindung_lc.connect("meineVerbindung");
// Das Textfeld zur Ausgabe des zu Empfangenen Textes erzeugen
this.createTextField("output_txt", 1, 5, 5, 200, 60);
output_txt.border = true;
Der Sender
Der Sender benötig ein Verbindungsobjekt, eine Verbindung (die selbe wie oben) und eine Angabe welche Funktion mit welchen Parametern er beim Empfänger auslösen soll.
// Ein Texteingabefeld erzeugen
var input_txt:TextField = this.createTextField("input_txt", 666, 5, 5 , 200,60);
input_txt.type = "input";
input_txt.border = true
//////////////////////////////////////////////////////////////////////////
// Ein Senden 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", "schreibeText", input_txt.text);
}