Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 4 und Flash 5

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-10-2008, 11:36   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 5
Unhappy PHP-übergebene Variable als Schalter nutzen (loadVariables, onClipEvent) geht nicht!

Hi Leute!

Bin grade am Programmieren und bißchen am verzweifeln.
Gleich vorab: Habe sowohl Google, als auch die FlashForum-Suche benutzt und nichts gefunden, mit dem es funktioniert!

Habe ein SWF, das durch eine Variable aus PHP (loadVariables) mittels onClipEvent angestoßen werden soll, doch es funkt nicht!

Hier die Daten:

Die Datei "counter.php":

PHP-Code:
<?php

echo "&_root.counter=1";

?>
Auf dem ersten Bild liegt folgendes Script:
Code:
stop ();
_root.counter = 0;
loadVariablesNum ("counter.php", 0, "POST");
Auf einem Dummy-Movieclip im ersten Bild liegt folgendes Script:
Code:
onClipEvent(enterFrame){
	if(_root.counter!=0) {
		_root.nextFrame();
	}
}
Ich habe bereits ein Dynamisches Textfeld namens "counter" reingebaut, um zu kucken, ob die Variable _root.counter überhaupt korrekt eingelesen wird!
Es erscheint zu Beginn eine "0" und nach ca. 0,5 Sekunden eine "1" im Textfeld so wie es sein soll. Es kann also nicht am Befehl loadVariablesNum liegen meiner Meinung nach.
Tja, sobald da eine "1" erscheint sollte doch eigentlich der Film zum nächsten Bild springen, doch er tut es nicht!
Wenn ich dann in genau diesem Textfeld MANUELL eine "1" oder eine andere Zahl oder was auch immer reinschreibe, dann läuft das SWF an!

Kann mir bitte jemand sagen, woran das liegen kann?
Ich kanns mir echt nicht mehr vorstellen...

Hab sogar schon onClipEvent(data) und andere Kniffe probiert, aber genau dasgleiche: Die Variable lädt (Beweis durch Textfeld), aber das SWF macht nix!

Und bitte keine Beiträge wie: "Probiers mit Flash MX oder CS3!" Danke! :-)
ingobeutner ist offline   Mit Zitat antworten
Alt 02-10-2008, 12:40   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Du verwechselst da etwas... Aus einem Response wird immer ein String gelesen, in diesem Fall ein Namen-Wertepaar. Du solltest als Namen-Wertepaar aber keine Zeitleistenangaben übertragen, sondern das dem Flashfilm überlassen. Mal als ungetesteter Ansatz:
PHP-Code:
<?php
echo "&counter=1";
?>
PHP-Code:
stop ();
_root.counter 0;
loadVariablesNum ("counter.php"0"POST");

onClipEvent(load){
   
counter "0";
}
onClipEvent(enterFrame){
    if(
counter!= "0") {
                
_root.counter Number(counter);
        
_root.nextFrame();
               
    }

Ein onLoad-Handler wäre hier allerdings besser als ein EnterFrame, der nur Performance kostet...
  Mit Zitat antworten
Alt 02-10-2008, 12:53   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 5
Eigentlich ist ja geplant, die Variable "counter" erst ganz am Ende einer etwas größeren Datenbank-Abfrage zu übermitteln.
Damit erst dann der Film weitergeht, wenn alle Daten eingelesen sind.

Hast Du (oder jemand) ne geschicktere Variante dafür? (FLASH 5!!!)

Die Variable bräuchte ich aber sowieso...
ingobeutner ist offline   Mit Zitat antworten
Alt 02-10-2008, 14:57   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich empfehle dir, auf eine aktuellere Flash-Version abzudaten und dann die LoadVars-Klasse zu nutzen.
  Mit Zitat antworten
Alt 02-10-2008, 15:03   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 5
Das:

Zitat:
Ich empfehle dir, auf eine aktuellere Flash-Version abzudaten und dann die LoadVars-Klasse zu nutzen.
passt nicht dazu:

Zitat:
Und bitte keine Beiträge wie: "Probiers mit Flash MX oder CS3!" Danke! :-)
;-)
ingobeutner ist offline   Mit Zitat antworten
Alt 02-10-2008, 18:44   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 5
Ein weiteres Problem hat sich grade noch ergeben, was (glaube ich) mit dem o. g. einhergeht:

Ich kann problemlos Variablen aus einem PHP in meinem Flash (in einem dynamischen Textfeld) anzeigen lassen.
Wenn ich aber einem Movieclip das Script zuweise "Wenn diese Variable soundso ist, tue dasunddas", geht es nicht!

Beispiel:

Ich lade von einem PHP die Variable _root.test=1 in mein SWF.
Klappt problemlos, Variable wird im Textfeld "test" korrekt angezeigt.

Wenn ich jetzt einem Movieclip sage...

Code:
onClipEvent(enterFrame) {
     if (_root.test == 1         oder auch          _root.test == "1") {
          gotoAndStop(2);
     }
}
tut sich nix!
Selbst wenn ich schreibe...

Code:
onClipEvent(enterFrame) {
     _root.test2 = _root.test;
}
sollte er doch eigentlich das dynamische Textfeld "test2" dem dynamischen
Textfeld "test" inhaltlich anpassen (was auch immer der Inhalt ist - Zahl oder Text).

Doch in beiden Fällen passiert gar nix!

Jemand ne Idee, an was DAS liegt?

Erneut bitte keine Empfehlungen auf Updates, danke!
ingobeutner ist offline   Mit Zitat antworten
Alt 02-10-2008, 21:56   #7 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Jemand ne Idee, an was DAS liegt?
Hab ich doch deutlich geschrieben: du erhältst über den Response ein Namen-Wertepaar. Mit dem Stringbezeichner "_root.test" kann der Flashfilm aber eben keine Zeitleistenvariable erzeugen. Du hättest auch "_blafasel.com" übergeben können, ist für den Player auch nur ein Variablenbezeichner, der lediglich auf der Zeitleiste liegt, die den Response empfangen hat. Aber nicht das, was du eigentlich haben möchtest, nämlich eine Variable mit einem vorangestellten Objektpfad...

Deswegen solltest du entweder anders referenzieren oder die Pfade so anpassen wie vorgeschlagen. Das "_root." bspw. muss ja überhaupt nicht in das Namen-Wertepaar eingetragen werden. Wenn du mit loadVariablesNum arbeitest, bekommst du den Response ja sowieso auf der Hauptzeitleiste zurück.
  Mit Zitat antworten
Alt 04-10-2008, 09:53   #8 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 5
Zitat:
Zitat von agedoubleju Beitrag anzeigen
Hab ich doch deutlich geschrieben: du erhältst über den Response ein Namen-Wertepaar. Mit dem Stringbezeichner "_root.test" kann der Flashfilm aber eben keine Zeitleistenvariable erzeugen. Du hättest auch "_blafasel.com" übergeben können, ist für den Player auch nur ein Variablenbezeichner, der lediglich auf der Zeitleiste liegt, die den Response empfangen hat. Aber nicht das, was du eigentlich haben möchtest, nämlich eine Variable mit einem vorangestellten Objektpfad...
Gut, dann schreib mir doch bitte mal rein, wie DU eine Variable in Flash 5
aus einer PHP-Datei einlesen würdest, mit der man dann arbeiten kann,
also z. B. die Variable als Zeiger benutzen. Ich werde nämlich aus Deiner
Antwort (leider) nicht schlau.

Du schreibst das zwar mit dem anders referenzieren oder die Pfade
anpassen. Aber wie genau? Vor allem: Wenn doch das alles "falsch" wäre,
wieso werden dann dennoch die Textfelder mit den PHP-übergebenen Daten
gefüllt? Das sollte doch dann auch nicht gehen, oder doch?

Es wäre sehr nett, wenn Du mir (als anscheinend was das angeht
nichtswissenden Newbie) hier reinschreiben könntest (als Code) wie ich
z. B. eine Variable aus PHP in Flash korrekt einlese, damit ich z. B. sagen
kann: "Wenn die Variable X gleich 1 ist, tue das"

Vielen, vielen Dank im voraus!
ingobeutner ist offline   Mit Zitat antworten
Alt 04-10-2008, 10:35   #9 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Lies dir noch mal meinen ersten Beitrag und das entsprechende Script durch, da steht doch alles drin...
  Mit Zitat antworten
Alt 04-10-2008, 11:17   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: LüdenscheiD
Beiträge: 148
Zitat:
Zitat von agedoubleju Beitrag anzeigen
...

<?php
echo "&counter=1&";
?>


... und schau nochmal dein php script auf leerzeichen durch.
Gadon ist offline   Mit Zitat antworten
Alt 04-10-2008, 11:29   #11 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Der zweite Ampersand muss nicht unbedingt gesetzt werden, der ist nur zur Sicherheit, falls beim Response etwas nicht richtig übertragen wird.
  Mit Zitat antworten
Alt 04-10-2008, 11:46   #12 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: LüdenscheiD
Beiträge: 148
Zitat:
Zitat von agedoubleju Beitrag anzeigen
Der zweite Ampersand muss nicht unbedingt gesetzt werden, der ist nur zur Sicherheit, falls beim Response etwas nicht richtig übertragen wird.
natürlich hast du recht.
wollte die fehlerquellen nur etwas eingrenzen.
Gadon 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 17:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele