Variablen von externer .swf File werden nicht geladen

Fritzl

Grünschnabel
Hallo
Also ich habe folgendes Problem:
Ich habe eine .swf Datei (vcpa_page.swf) in der hab ich ein Menü das einzelne Module lädt wenn man auf einen Menüpunkt klickt. Wenn ich auf "Home" klicke wird die .swf Datei (welmessage.swf) geladen und ersetzt den Movieclip mit dem Instanznamen "main".
In dieser .swf hat es ein dynamisches Textfeld mit der Variable "welmessage" die aus einer PHP Datei mittels "loadVariablesNum("http://vcpa.itc-clan.de/vcpa_page/PHP/welmessage.php", 0, "POST");" geladen wird. Wenn ich nun die .swf einzeln ausführe zeigt er mir den Text wunderbar an, wenn ich aber die .swf von dem anderen Flash Film herauslade wird der Text nicht angezeigt. Hab schon vieles probiert aber konnte das Problem nicht lösen. Ich hoffe ihr könnt mir helfen.

Bye
 
Hi,

Poste am besten mal das ActionSript, mit dem die Variable geladen wird. So ein Problem kann durch mehrere Ursachen entstehen (z.B. geänderte Verweise auf _root, fehlende onLoad-Events etc.). loadVariablesNum lädt übrigens in eine bestimmte Stufe; diese kann bei einer eingeladenen Datei woanders liegen, als bei einer einzeln ausgeführten Datei: Stufe 0 wird wahrscheinlich auf _root (und daher auf dem Hauptfilm) liegen. Ich enpfehle Dir die Verwendung des LoadVars-Objektes.

Gruß
.
 
Also das AS hab ich schon gepostet aber für die die es nicht gesehen haben :D
PHP:
loadVariablesNum("http://vcpa.itc-clan.de/vcpa_page/PHP/welmessage.php", 0, "POST");
Wegen dem Loadvars Objekt muss ich wohl nochmals nachlesen wie das genau funktioniert ;) Ich werde mal im Debugger schauen wo die Variable genau hingeladen wird.
Ansonsten noch vielen Dank :D
 
Oh mein Gott. Wenn in deinem Post schon eine Zeile AS steht und Tobi nach dem AS fragt, meint er wohl den gesamten. Mit einer Zeile lässt sich nicht wiurklich was anfangen. Und poste am Besten den Quelltext der PHP-Datei mit....
 
Das andere bringt euch ja nix Naja was solls:
Script von Menübutton:
PHP:
onClipEvent (load) {
	back1.setMask(link1);
	_root.id = 1;
	id = _root.id;
}
on (rollOver) {
	_root.newposy = this._y;
	if (_root.currentid != id) {
		_root.pfeile.gotoAndStop(1);
	}
}
on (release) {
	_root.pfeile.play();
	_root.currentid = id;
	if (module != "") {
		_root.main.loadMovie(_root.module1);
	}
}

Im Frame 1 von welmessage.swf steh nur das:
loadVariablesNum("http://vcpa.itc-clan.de/vcpa_page/PHP/welmessage.php", 0, "POST");

Und so noch den Source der PHP Datei (welmessage.php):
PHP:
<?php
include "config.php";
include "connect.php";

$abfrage = "SELECT message FROM vcpa_welmessage";
$query = mysql_query($abfrage);
while(list ( $welmessage )= mysql_fetch_row($query)) {
	echo "&welmessage=$welmessage";
}
?>

So nun zufrieden?
Ich poste hier doch ned des ganze AS das würde Jahre dauern das was ich gepostet habe ist wirklich das einzige was noch irgednwie etwas mit dem Problem zu tun haben könnte. :(
Edit:
Oder wollt ihr gleich die ganze .fla File? ;-)

Bye

EDIT: Bitte Code-Tags verwenden, danke!
-Datic

.
 
Zuletzt bearbeitet von einem Moderator:
Hi,

na ja - ich denke, dass diese Variable zwar geladen wird, aber aufgrund der Verwendung von loadVariablesNum eben auf einer Ebene zur Verfügung steht, die Deinem Unterfilm nicht ohne weiteres bekannt ist. Schon mit loadVariables könntest Du dieses Problem umgehen - oder Du weist dem Textfeld den Wert manuell zu:
PHP:
mein_textfeld.text = _root.welmessage;

Woran es genau liegt, kann ich nicht sagen, ohne (wie Du schon richtig vermutet hast) die .fla gesehen zu haben (zumal ich mit loadVariables nicht arbeite). - das LoadVars-Objekt sollte jedoch die erste Wahl sein, und die Verwendung von Textfeldvariablen ist auch nicht die beste Lösung.

Gruß
.
 
So ich gebe euch mal die .fla is soweiso noch im frühen Anfangsstadium also spielt es keine Rolle wenn das Jemand klauen würde :D Mit dabei ist auch noch gleich der Source der welmessage.swf
Übrigens krieg ich jetzt ne "SandBox Verletzung"
Hab sie auf meinem Server geladen weil sie für den Anhang zu gross sind ;)
Naja schauts euch mal an...
Sources.zip
Bye
 
Hi,

wie ich schon sagte: Deine Variable ist auf Stufe 0, dass heisst, auf _root zu finden. Wenn Du nicht mit dem LoadVars-Objekt arbeiten willst, geht das entweder so:
PHP:
loadVariablesNum("dein_PHP.php", 0, "POST");
this.onEnterFrame = function() { // Warten, bis die Daten geladen sind
    if (_root.welmessage != undefined) {
        this.welmessage = _root.welmessage; // rüberholen
        delete this.onEnterFrame; // und Warten beenden
    }
}
mit loadVariablesNum, oder so:
PHP:
loadVariables("bla.txt", this, "POST");
mit loadVariables (natürlich etwas kürzer, gell? ;) ).

Gruß
.

P.S.: was verstehst Du unter einer Sandbox-Verletzung?
.
 
Sorry das ich nicht früher geantwortet habe.
Also nun zum Problem: Dein Lösungsvorschlag Datic hat leider nicht funktioniert. Vor allem muss das Probelm in der welmessage.swf selber lösbar sein, da ich das ganze Menüsystem dynamisch machen möchte. Wenn ich aber für jedes einzelne Modul ein AS an den Movieclip main anhängen müsste wärs nicht mehr dynamisch versteht ihr was ich meine?
Ich würde gerne die Lösung mit dem Loadvars Objekt ausprobieren werde aber aus dem Tutorial von Datic ned schlau... :(
Ich hoffe du kannst es mir genauer erklären. :)

Bye
 
Zurück