Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-05-2005, 11:07   #1 (permalink)
BigSource GbR
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 29
Question LocalConnection - Check ob beide Dateien geladen sind.

Ich möchte mittels LocalConnection zwischen zwei swf Dateien kommunizieren.
Momentan schaut der Code so aus:

// Code in der sendenden SWF-Datei

ActionScript:
  1. lc_sender = new LocalConnection();
  2. lc_sender.onStatus = function(infoObject)
  3. {
  4.     switch (infoObject.level)
  5.     {
  6.         case 'status' :
  7.             trace("LocalConnection connected successfully.");
  8.             break;
  9.       case 'error' :
  10.             trace("LocalConnection encountered an error.");
  11.             break;
  12.     }
  13. }
  14.  
  15. lc_sender.send("verbindungsName", "recieveFlash_1");

// Code in der empfangenden SWF-Datei
ActionScript:
  1. lc_reciever = new LocalConnection();
  2. lc_reciever.recieveFlash_1 = function()
  3. {
  4.   // Anweisungen hier einfügen
  5.   trace("reciever params");
  6. }
  7. lc_reciever.connect("verbindungsName");

Der Sender darf jedoch erst Daten senden, wenn die Empfänger Datei geladen ist. Kann man checken, ob beide Filme geladen sind?
KIM|C ist offline   Mit Zitat antworten
Alt 13-05-2005, 11:22   #2 (permalink)
BigSource GbR
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 29
Lösungsansatz, jedoch nicht sehr sauber.

Ein Lösungsansatz wäre, solange die send Funktion zu wiederholen, bis der onStatus kein error zurück gibt.
Jedoch finde ich diesen Ansatz nicht sehr sauber.

Gibt es einen besseren Weg?
KIM|C ist offline   Mit Zitat antworten
Alt 10-06-2005, 10:48   #3 (permalink)
odd
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 1
loading kontrolle per LocalConnection

Hi KIM|C
ich habe gerade eben an einem solchen Konstrukt gesessen.

Hier meine Lösung, die's ganz gut tut, sich aber noch etwas schlanker sein könnte:

================================================== =====
//erster film:
//jeder Film trägt eine id fileNum, erster film: fileNum = 1;
//array mit ids der erwarteten Filme
this.loadedFiles = [2, 3];

// Aufruf nachdem dieser Film geladen wurde
function setConnection()
{
var lC = this.myConnector = new LocalConnection();
lC.ref = this;
//Aufruf jeweils nachdem ein weiterer Film geladen wurde
lC.receiveLoadingMsg = function(fileNum)
{
this.ref.checkLoaded(fileNum);
}
lC.exec = function ()
{
this.ref.gotoAndPlay(this.ref.nextKeyFrame);
}
lC.connect("connector" + this.fileNum);
}

//Kontroll Function, ob alle erwarteten Filme geladen sind
function checkLoaded(fileNum)
{
for(var i = 0; i < this.loadedFiles.length; i++)
{
if(this.loadedFiles[i] == fileNum)
{
this.loadedFiles.splice(i, 1);
}
if(this.loadedFiles.length == 0)
{
this.allLoaded();
}
}
}

// die zu ladenden Filme

// Aufruf nachdem dieser Film geladen wurde
function setConnections()
{
var lC = this.myConnector = new LocalConnection();
lC.ref = this;

lC.connect("connector" + this.fileNum);
// Aufruf der Kontrollfunktion in Film 1
lC.send("connector1", "receiveLoadingMsg", this.fileNum);
}
================================================== =====

Hmm - etwas wirr?
vielleicht hilft's ja trotzdem.
odd ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele