2 SWFs Variablenübergabe zwischen den Filmen?

Hallo,

erstmal danke für die ausgiebige Antwort. Das Problem ist halt folgendes. Ich arbeite mit einigen "_global.irgendwas" Variablen, da ich mit vielen externen ActionScripten arbeite und die Variablen anders nicht über verschiedene Klassen nutzbar sein wollten.
Ich habe also viele globale Variablen- wie kann ich dann dein Script anpassen? Muss ich jetzt alle meine Variablen wieder auf _root bringen oder kann ich es auch anders machen.

Was mir noch aufgefallen ist, dass es mit einer Variable immer geklappt hat und die anderen sich weigern. Geht das generell nur mit einer?

Gruß
 
Der Fehler kann viele Ursachen haben, z.B.:

- Wo sind die globalen Variablen deklariert? Auf _root, in Objekten, in Unterfilmen?

- Gibt es vielleicht Trunctations (selber Bezeichner noch irgendwo verwendet)?

Von Klassen aus kannst Du über eine globale Variable natürlich auch auf Zeitleistenvariablen zugreifen. Die eleganteste Lösung ist immer, neuen Objekten (Klassen, MovieClips, swf-Dateien) die benötigten Referenzen zu übergeben, z.B.:
Code:
var foo = new Bar(this);
// das Objekt der Klasse "Bar" kennt nun das referenzierende
// Objekt und kann auf alle Zeitleistenvariablen zugreifen
Handelt es sich z.B. um Arrays, in denen Unterschiedliche Vokabeln (je nach Sprache) abgelegt sind, übergibt man am besten das gesamte Array (noch besser: Array in ein Objekt packen und eine Referenz auf das Objekt übergeben):
Code:
var languages = new Object();
languages.DE = new Array("Hallo", "Welt");
languages.EN = new Array("Hello", "World");

var bar = this.createEmptyMovieClip("bar", 1000);
bar.loadMovie("foo.swf");

function isLoaded(obj) {
   obj.initLang(languages);
}
Hierbei ruft "foo.swf" nach dem Laden die Callback-Funktion "isLoaded" mit einer Referenz auf sich selbst auf, um dann vom "Mutterobjekt" eine Referenz auf das languages-Objekt zu bekommen:
Code:
// in "foo.swf":
_parent.isLoaded(this);

function initLang(obj) {
    this.languages = obj;
}

Gruß
.
 
also die Variablen werden direkt im ersten Frame meines Hauptfilm deklariert. Eine Überschneidung dürfte es nicht geben, da es ja im Hauptfilm sonst einen Fehler hätte geben müssen.
 
Dann poste - wie gesagt - bitte einmal Deine Datei(en). Ursachen kann es noch mehrere geben, auch solche, an die man nicht sofort denkt, und mit ein paar trace-Aktionen an relevanten Stellen lässt sich so etwas in der Regel recht schnell einkreisen.

Gruß
.
 
Hallo,

ich habs heute nochmal von vorne gemacht. Und ich habe den Fehler gefunden. Ich musste was umstellen, so dass die globalen Variablen in meinem Hauptfilm stehen und in dem Unterfilm mit einem Wert versehen werden.
Dann hier und da noch eine Variable dazu und was übergeben- und plötzlich ging es...

Danke trotzdem für die Mühe!


Gruß
 

Neue Beiträge

Zurück