Variablen (GLOBAL) in Flash laden?

KICK

Mitglied
Hi,

hab leider nicht viel Ahnung von Flash. Ich möchte mittels "loadVars()" Variablen von einem PHP File in Flash laden. Das funktioniert leider nur teilweise ->

PHP Datei:
<?
echo"&ichbineinevariable=lalala&";
?>

FLASH Datei:
myloadvars = new LoadVars();
myloadvars.load("http://meinserver.com/meinephpdatei.php");
myloadvars.onLoad = function() {
test=this.ichbineinevariable;
trace(test); //<- Hier wird der Wert korrekt ausgegeben!
}

trace(test); //<- Hier als undefined

Warum kann ich mit der Variable "test" nicht einfach weiterarbeiten?
 
Weil die Variable hier nur in deinem Loadvars-Objekt exisitert
Du kannst sie aber steuern.

Vom Loadvars-Objekt aus:
PHP:
_root.test = this.ichbineinevariable; //damit liegt die Variable auf der Hauptzeitleiste
irgendeinmc =  this.ichbineinevariable; //damit liegt die Variable in der Zeitleiste von irgendeinmc, evtl. weitere Pfad erforderlich
_global.test =  this.ichbineinevariable; //gernerell verfügbar? Ungetestet, schau in der Flashhilfe nach _global (ab MX)
Oder von der Zeitleiste aus, in der auch dein loadvars-Objekt liegt und dann ohne Änderungen in deiner loadVars-Funktion
PHP:
trace(myloadvars.test);
Ist alles eine Frage der Pfade ...

Gruß
Rena
 
Hallo,

danke für die Antwort. Funktioniert aber leider (alles) nicht. Arbeite mit Flash MX, vielleicht liegts daran?

Deiner Erklärung nach müsste doch folgendes klappen oder? ->

myloadvars = new LoadVars();
myloadvars.load("http://meinserver.com/meinephpdatei.php");
myloadvars.onLoad = function() {
test=this.ichbineinevariable;
trace(test); //<- Hier wird der Wert korrekt ausgegeben!
}

trace(myloadvars.test); //<- Hier wieder als undefined :-(

Das ganze liegt alles auf einer Ebene (Ebene 1) in der gleichen Szene (Szene1) mehr gibt es in meiner Datei garnicht. Ums genauer zu machen: "DATEI -> NEU -> Code in Aktionen eingetragen -> STEUERUNG -> FILM TESTEN -> ärgern :rolleyes: ".
 
Meine Erkärungen sind nicht unfehlbar ;)
Was ist mit den drei anderen Varianten?

Im Zweifelsfall mal entsprechende Testdateien anhängen ...

...

Sekunden später - aber noch vorm edit ... und ungeachtet alles vorher geschriebenen

Ja klar, wird der trace außerhalb der onload-Funktion nicht richtig angezeigt ... nur _innerhalb_ der Funktion wird erst dann ausgegeben, wenn auch wirklich geladen.
Dazu ist das loadvars-Objekt, innerhalb dessen dein trace funktioniert, ja da um erst dann die geladenen Variablen zu verarbeiten - z.B. einer Zeitleiste zuzuweisen - wenn sie auch wirklich geladen sind.
Alles außerhalb wird nur zeilenweise abgearbeitet auch wenn die Variablen noch nicht geladen sind.
Also die drei anderen Varianten _im_ loadvarsojekt testen und die Variablen auch vom loadvarsobjekt aus verarbeiten.

Gruß
Rena
... auch FlashMX
 
Zuletzt bearbeitet:
@KICK: Einen kleinen Tipp du lädst Daten in einen Flash Film und dieser Vorgang benötigt seine Zeit. Daher kannst du auch ausserhalb des Ereignis onLoad, des LoadVars-Objekt nur ein undefined erhalten. Schliesslich ist die Ausführung der Codezeile im ersten Schlüsselbild der Flash Films wesentlich schneller ausgeführt, als der Ladevorgang des LoadVars-Objekt gestartet und beendet wird!

Du kannst meine Aussage auch nachprüfen mit Hilfe deiner Codezeilen:
PHP:
myloadvars = new LoadVars();
myloadvars.load("http://meinserver.com/meinephpdatei.php");
myloadvars.onLoad = function() {
	test = this.ichbineinevariable;
	trace(test); //<- Hier wird der Wert korrekt ausgegeben!
};

trace(myloadvars.test); //<- Hier wieder als undefined

Die Ausgabe im Flash Ausgabefenster stellt sich, wie folgt dar:
undefinied
inhalt_deiner_variablen

Die Reihenfolge der Ausgabe bestätigt somit, die Festellung.

Du kannst ja auch mal folgende Codezeilen zu den bestehenden hinzufügen:
PHP:
mein_btn.onRelease = function()
{
	trace(myloadvars.ichbineinevariable);
}

Noch eine Schaltfläche mit dem Namen mein_btn und schon ist deine Variable abrufbar. Es kommt somit ganz darauf an zu welchem Zeitpunkt du den Wert abfragst!

Liebe Grüsse
Matze K.
 
Also das mit den Variablen laden hab ich teilweise jetzt verstanden. Es ist mir aber irgendwie nicht Möglich für ein Glücksrad *.FLA File (welches ich im Übrigen hier im Board gefunden habe *g*) die SPEED Variable von einem Php File zu ziehen.

Im Anhang das *.fla File (Zip verpackt) für Flash MX. Vielleicht kann sich dass mal jemand angucken und mir erklären wie ich vorgehen muss um mir die SPEED Variable von einem PHP File bzw. generell von extern zu holen.

Hab den Code bewußt noch nicht geändert, damit nicht viel Verwirrung entsteht :)
 

Anhänge

Zurück