Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-01-2009, 15:09   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 18
Exclamation If-Abfrage geht nicht

Guten Abend,hab mich gerade erst angemeldet......Ich habe im momende ein sehr dringendes Problem und zwar habe ich per PHP eine Variable ausgelesen und diese Flash übergeben danach habe ich eine Variable per Eingabe erhalten...nun möchte ich diese zwei Wörter miteinander vergleichen und ausgeben ob sie èbereinstimmen oder nicht....nun zu meinem Problem....Obwohl das Wort welches aus der Datenbank ausgelesen wurde und das eine welches Eingegeben wurde genau gleich sind sagt mir die IF-Abfrage dass sie nicht gleich sind.....weiss jemand von euch was ich falsch gemacht habe.....musst das noch bis morgen hin kriegen sonst krieg ich stress..........Danke jetzt schon für eure Hilfe

var LoadVarObject = new LoadVars ();
LoadVarObject.onLoad = function (loadSuccess)
{
if (loadSuccess == true)
{
losung = this.wort_e_1;
_parent.layout.wort = this.wort_g_1;
}
};
LoadVarObject.load ("d-e.php");

_parent.layout.loesung = losung;
var erg = _parent.layout.eingabe;
var res = _parent.layout.loesung;

if(res == erg)
{
_parent.layout.wort = "Richtig";
}

//Abfrage ob Eingabe und Loesung nicht gleich sind
if(res != erg)
{
_parent.layout.wort = "Falsch";
}
Jurf ist offline   Mit Zitat antworten
Alt 07-01-2009, 15:27   #2 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
LoadVars.sendAndLoad ist eine asynchrone Funktion, d.h.: Das restliche Script wartet nicht bis LoadVars fertig ist sondern wird direkt weiter verarbeitet. An der Stelle ist die geladene Variable aber noch gar nicht bekannt.

Das hat zur Folge das alle Scriptteile die sich auf deine geladene Variable beziehen innerhalb des onLoad stehen müssen.

Btw.: Testen kannst du das ganz einfach indem du mal einen Trace setzt:

PHP-Code:
// ...

LoadVarObject.load ("d-e.php");
trace(_parent.layout.wort);

// ... 
Da wird dir sehr Wahrscheinlich ein "undefined" ausgegeben.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 07-01-2009, 17:21   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 18
Zitat:
Zitat von readme.txt Beitrag anzeigen
LoadVars.sendAndLoad ist eine asynchrone Funktion, d.h.: Das restliche Script wartet nicht bis LoadVars fertig ist sondern wird direkt weiter verarbeitet. An der Stelle ist die geladene Variable aber noch gar nicht bekannt.
Also hab versucht das zu umgehen in dem ich alles in eine weitere If-Abfrage gepackt habe, die erst weiter geht wenn keine der beiden Variablen leer ist....die Abfrage geht weiter...also sind die Variablen nicht leer wenn getesetet wird...doch die Ausgabe ist immer noch FALSCH...nun darf ich dass überhaupt so machen und ich hab noch so meine mühe mit dem trace()... ich versteh noch ned genau wie des geht....wo wird den der inhalt ausgegeben....??

gruss

Geändert von Jurf (07-01-2009 um 17:31 Uhr)
Jurf ist offline   Mit Zitat antworten
Alt 08-01-2009, 07:59   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
ich hab noch so meine mühe mit dem trace()... ich versteh noch ned genau wie des geht
Wenn du den Film im Testmodus mit STRG-ENTER startest, werden dir die traces in einem eigenen Ausgabefenster gezeigt.

Und wie readme schon geschrieben hat: du musst entweder deine Variablen im onLoad-Callback abfragen oder in einer Funktion, die im onLoad gestartet wird, bspw.:
PHP-Code:
var LoadVarObject = new LoadVars ();
LoadVarObject.onLoad = function (loadSuccess)
{
   if (
loadSuccess == true)
   {
      
_root.losung this.wort_e_1;
      
_parent.layout.wort this.wort_g_1;
      
_root.folgeFunktion();
   }
};
LoadVarObject.load ("d-e.php");

function 
folgeFunktion(){
    
trace("_root.losung="+_root.losung);
   
_parent.layout.loesung _root.losung;
   var 
erg _parent.layout.eingabe;
   var 
res _parent.layout.loesung;

   if(
res == erg)
   {
      
_parent.layout.wort "Richtig";
   }

  Mit Zitat antworten
Alt 08-01-2009, 09:17   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 18
Zitat:
Zitat von agedoubleju Beitrag anzeigen
PHP-Code:
var LoadVarObject = new LoadVars ();
LoadVarObject.onLoad = function (loadSuccess)
{
   if (
loadSuccess == true)
   {
      
_root.losung this.wort_e_1;
      
_parent.layout.wort this.wort_g_1;
      
_root.folgeFunktion();
   }
};
LoadVarObject.load ("d-e.php");

function 
folgeFunktion(){
    
trace("_root.losung="+_root.losung);
   
_parent.layout.loesung _root.losung;
   var 
erg _parent.layout.eingabe;
   var 
res _parent.layout.loesung;

   if(
res == erg)
   {
      
_parent.layout.wort "Richtig";
   }

Danke für deine Hilfe nur leider funktioniert das bei mir nicht und zwar....weil beim Laden von 'wort' und 'losung' wurde noch keine Eingabe getätigt also wird der vergleich immer falsch sein.....

Also was ich genau realisiere ist ein Sprach-Quiz...... man wählt eine Kategorie(Deutsch nach English....)...dann kommt ein kleiner Übergang und während dem Übergang werden die zwei Wörter aus der Datenbank geladen: wort, welches das Deutsche Wort enthält(dieses word wird per zufall geholt) und losung, welches die Übersetzung des Deutschen Wortes enthält(wird über das per zufall geholte deutsche Wort ausgelesen).....nachdem Übergang steht nun das Deutsche Wort da,welches man nach English übersetzen muss.Die Übersetzung schreibt man in Eingabefeld und bestätigt die Eingabe...nachdem die Eingabe bestätigt wurde erscheint zur kontrolle das richtige Wort,also der Inhalt aus der Variable losung. Gleichzeitig soll nun im hintergrund getestet werden od das Wort welches eingegeben wurde mit dem Wort welches aus der Datenbank gelesen wurde und in losung gespeichert ist, gleich sind...und genau hier scheitere ich , da bei der Abfrage immer herauskommt das Die Eingabe mit der Lösung nicht übereinstimmt......ich weis einfach nicht mehr was ich tun soll...... ich bitte Euch nochmal um Hilfe......

ich danke jetzt schon für eure Hilfe....


mfg Jurf

Geändert von Jurf (09-01-2009 um 08:17 Uhr)
Jurf ist offline   Mit Zitat antworten
Alt 08-01-2009, 13:40   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 18
weis denn wirklich niemand wo dass problem liegen könnte....bin schon 5 h dahinter und habs immer noch nicht geschaft...!!!!!!!!!!!!!!
Jurf ist offline   Mit Zitat antworten
Alt 08-01-2009, 20:57   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 468
PHP-Code:

var ergebnis:String "hallo"

var LoadVarObject = new LoadVars ();
LoadVarObject.onLoad = function (loadSuccess)
{
   if (
loadSuccess)
   {
     
losung this.wort_e_1;
     
folgeFunktion(losung);
   }
};
LoadVarObject.load ("d-e.php");


function 
folgeFunktion(test){
    
trace("_root.losung="+test);
   if(
ergebnis == test)
   {
      
trace("richtig")
   }

chanel ist offline   Mit Zitat antworten
Alt 09-01-2009, 08:21   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 18
Zitat:
Zitat von chanel Beitrag anzeigen
PHP-Code:
var ergebnis:String "hallo";

var 
LoadVarObject = new LoadVars ();
LoadVarObject.onLoad = function (loadSuccess)
{
   if (
loadSuccess)
   {
     
losung this.wort_e_1;
     
folgeFunktion(losung);
   }
};
LoadVarObject.load ("d-e.php");

function 
folgeFunktion(test){
    
trace("_root.losung="+test);
   if(
ergebnis == test)
   {
      
trace("richtig")
   }

ah...ich weis was du meinst......wird auch nicht klappen....und zwar weil das PHP ein zufälliges Deutsches wort holt und dann über dieses sich die übersetzung herausliest...dass heisst das die Frage und die Lösung gleichzeitig geladen werden...ich stell mal das PHP-File rein dann seht ihr was ich meine.....

PHP-Code:

<?php

/* Verbindung aufbauen, auswählen einer Datenbank */
mysql_connect("localhost""rstjb""mysqltransl")
    or die(
"Keine Verbindung möglich: " mysql_error());
/* echo "Verbindung zum Datenbankserver erfolgreich "; */
mysql_select_db("rstjb") or die("Auswahl der Datenbank fehlgeschlagen ");

/* Zufallszahl für die ID wird generiert */
$id=rand(1,10);

/*echo 'ID = ' . $id;*/

/* Die Abfrage für das deutsche Wort */
$query "SELECT Word_G FROM test_q where id = $id ";

/* Die Resource_ID wird geholt*/
$res1 mysql_query($query) or die("Anfrage fehlgeschlagen: " mysql_error());

/* Das Wort wird in die Variable geschrieben */
$wort1mysql_result($res1,0);

$wort_g_1 $wort1;


/* Die Abfrage für das englische Wort */
$query "SELECT Word_E FROM test_q where id = $id";

/* Die Resource_ID wird geholt*/
$res2 mysql_query($query) or die("Anfrage fehlgeschlagen: " mysql_error());

/* Das Wort wird in die Variable geschrieben */
$wort2mysql_result($res2,0);

$wort_e_1 $wort2;

echo 
'wort_g_1='.$wort_g_1.'&';
echo 
'wort_e_1='.$wort_e_1;

?>
Jurf ist offline   Mit Zitat antworten
Alt 09-01-2009, 08:51   #9 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
ich glaub du solltest mal einen Schritt zurück machen.

Hast du denn mal vernünftig getestet ob die Variablen aus der PHP überhaupt ankommen?
Du musst verstehen das es relativ schwer ist deinem Problem zu folgen, darum kommen vermtl. die eher allgemeinen Antworten die die Asynchronität von LoadVars betreffen.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 09-01-2009, 08:58   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 18
Zitat:
Zitat von readme.txt Beitrag anzeigen
ich glaub du solltest mal einen Schritt zurück machen.

Hast du denn mal vernünftig getestet ob die Variablen aus der PHP überhaupt ankommen?
Du musst verstehen das es relativ schwer ist deinem Problem zu folgen, darum kommen vermtl. die eher allgemeinen Antworten die die Asynchronität von LoadVars betreffen.
Ja ich habe getestet und die variablen kommen an... ich lasse sie anzeigen und sie werden auch richtig angezeigt...ich habe auch noch einen weiteren versuch gestartet in dem ich die zwei zu testenden Variablen an ein anderes PHP gesendet habe und dort getestet habe ob sie identisch sind und im PHP werden sie richtig verglichen.....wenn sie gleich sind meldet dies PHP richtig....
daher vermute ich dass das Problem irgendwo in Flash liegt...muss aber auch nicht sein....ich kenne mich noch zu schlecht in Flash aus um das mit sicherheit behaupten zu können.....

mfg Jurf
Jurf ist offline   Mit Zitat antworten
Alt 09-01-2009, 09:06   #11 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
kannst du das Problem denn auf eine Beispieldatei runterbrechen? inkl. einer PHP wo du einfach nur ein mögliches Ergebnis echost ohne die DB-Abfrage?
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 09-01-2009, 09:53   #12 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 18
Zitat:
Zitat von readme.txt Beitrag anzeigen
kannst du das Problem denn auf eine Beispieldatei runterbrechen? inkl. einer PHP wo du einfach nur ein mögliches Ergebnis echost ohne die DB-Abfrage?
Also hab es jetzt so probiert dass ich die Variablen nicht aus der Datenbank hole sondern hab sie statisch gemacht...nun übergibt PHP das deutsche Wort und seine übersetzung an Flash.....Flash testet und gibt immernoch an es sei Falsch....scheinbar gehen alle Vergleiche die ich mit Variablen mache die ich aus dem PHP-File habe nicht...!!..aber die Variablen sind nicht leer...bevor getestet wird , kontrolliert eine if schleife ob sie leer sind......
Jurf ist offline   Mit Zitat antworten
Alt 09-01-2009, 09:54   #13 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
dann schiebt die problematische stelle doch mal in eine fla und lad die fla+php hier hoch. Ohne das mal zu sehen kann man da kaum was zu sagen.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 09-01-2009, 09:59   #14 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 18
Zitat:
Zitat von readme.txt Beitrag anzeigen
dann schiebt die problematische stelle doch mal in eine fla und lad die fla+php hier hoch. Ohne das mal zu sehen kann man da kaum was zu sagen.
ok hier ist das fla-datei und 2php files.....entschuldige die unordnung ist meine erste flasharbeit......könnte es jetzt besser habe aber keine zeit mehr alles zu überarbeiten.....
wenn du geöffnet hast ist in Frame 125 der Code wo die Daten aus dem PHP-geladen werden...und bei Frame 151 ist der Knopf auf dem der Code ist wo verglichen wird...............

Danke dir dass du mir hilfst...bin schon am verzweifeln.......
Angehängte Dateien
Dateityp: rar quiz2.rar (34,5 KB, 2x aufgerufen)
Dateityp: rar php.rar (746 Bytes, 1x aufgerufen)

Geändert von Jurf (09-01-2009 um 10:11 Uhr)
Jurf ist offline   Mit Zitat antworten
Alt 09-01-2009, 10:21   #15 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
ui ... da liegt einiges im Argen. Wenn ich das richtig sehe stimmt fast dein komplettes MC-Handling nicht wirklich.

Bsp.:

PHP-Code:
_parent.layout.wort this.wort_g_1
Du willst der Textfeldvariablen "_parent.layout.wort" die Variable "this.wort_g_1" zuweisen. Aber ein:

PHP-Code:
trace(_parent.layout.wort); 
ergibt an der Stelle ein "undefined", das Textfeld bzw. die Variable des Textfeldes ist an der Stelle gar nicht bekannt. Was auch kein Wunder ist da sie in einem komplett anderen Schlüsselbild liegt als das AS.

Genauso hast du die Ansynchonität scheinbar noch nicht verstanden.

Nach einem Klick auf eine der Sprachenkonstellationen startest du dein LoadVars und ein gotoAndPlay(104) ... dann spielt der Film munter weiter bis zu schlüsselbild 149. Wenn dann das LoadVars noch nicht fertig ist ist deine Variable an der Stelle verloren. Du darfst den Film erst weiter abspielen lassen wenn das LoadVars fertig ist.

Deine Auswertung von der Eingabe kann an der Stelle auch nicht funktionieren schon weil ein:

PHP-Code:
on(press) {
  
trace(_parent.layout.loesung);

direkt ein undefined ergibt.

Um ehrlich zu sein ... das ganze zu fixen würde vermutlich doppelt so lange dauern wie es vernünftig neu zu machen.

Sry, ich weiss das willst du nicht hören aber da sind so viele Probleme das ich jedenfalls nicht wirklich weiterhelfen kann.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
flash, mysql, php

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 23:43 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele