Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-03-2005, 10:14   #1 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
externe Variablen in array und input vergleich hinkt irgendwie

Tag zusammen,

wenn ich mir externe Variablen aus einer TXT hole und sie verschieden anzeigen lasse, um zu sehen, ob sie da sind und auch später trace, dann sind sie immer alle da. Ich lade sie z.B. so:

ActionScript:
  1. //1. Frame
  2. stop();
  3. var my_lv:LoadVars = new LoadVars();
  4. my_lv.onLoad = function(success:Boolean) {
  5.     if (success) {
  6.         nam0.text = this.benutzer0; //hier alle mal einzeln
  7.         nam1.text = this.benutzer1;
  8.         nam2.text = this.benutzer2;
  9.         nam3.text = this.benutzer3;
  10.         nam4.text = this.benutzer4; //hier alle mal alle Namen als Aufzählung mit Komma getrennt
  11.         mylist = benutzer4.split(","); //aus der Aufzählung ein Array machen, klappt
  12.         gotoAndPlay(2); //klappt und alle Variablen sind dort wo sie sein sollen
  13.         } else {
  14.             trace("Error loading/parsing LoadVars.");
  15.             ausgabe.text = "Fehler beim Laden!";
  16.     }
  17. };
  18. my_lv.load("namen.txt");

Wenn ich nun ein Input-Textfeld nehme und dort etwas eingebe und mit dem Array vergleiche, dann ist laut trace alles korrekt, aber die Abfrage ergibt einen Fehler. Z.B.:

ActionScript:
  1. //2. Frame
  2. this.btn_mc.onRelease = function () {
  3.     trace(user); // Inputfeld - wenn Eintrag vorhanden, dann wird er angezeigt
  4.     trace(mylist); //Array als Aufzählung erscheint - ist also vorhanden
  5.     trace(mylist[0]); // alle Elemente einzeln erscheine - sind also vorhanden
  6.     trace(mylist[1]);
  7.     trace(mylist[2]);
  8.     trace(mylist[3]);
  9.     if (user == mylist[0]) { //zum Beispiel eine Eingabe vergleichen
  10.         _root.gotoAndPlay("hierhin"); //oder löse was auch immer aus
  11.     } else {
  12.         _root.userausgabe.text = "Name existiert nicht.";
  13.     }   
  14. }

Also trace zeigt mir die Eingabe im Inputfeld an, das Array komplett als Aufzählung und auch alle Elemente des Arrays einzeln. Theoretisch sollte dann doch der Vergleich zwischen Input und Array funktionieren, da das Array vorliegt. Oder muss noch eine Boolean in die Abfrage rein? Denn die Ausgabe ist immer die Fehlermeldung.
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner ist offline   Mit Zitat antworten
Alt 14-03-2005, 11:28   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
hallo.

könntest du vielleicht ein demo-script hochladen?
mit demo-txt-datei?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 14-03-2005, 12:58   #3 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
Hi gaspode, mache ich doch glatt. Hoffe, es ist die richtige. Liegen einfach diverse Textfelder sichtbar auf der Bühne zur Kontrolle. Habe schon diverse Varianten ausprobiert.
Letztendlich wird auch dies alles schön getraced:
ActionScript:
  1. for (i in mylist){
  2.     trace(i);
  3. }
  4. for (i in mylist){
  5.     trace(mylist[i]);
  6. }

Nur die Abfrage will nicht. Habe bewusst nur exemplarisch eine und keine Schleife gesetzt. In AS1 ließ sich so ein array ohne Probs abfragen. Ist es in AS2 anders?
Oder sollte es gar daran liegen, dass ich hier die Testvariante auf der Haupt-Tl habe und nicht in einem MC?

------ Zusatz ----

Also, wenn ich dies mache:
Beispiel1:
ActionScript:
  1. stop();
  2. this.btn_mc.onRelease = function () {
  3.     trace(user);
  4.     trace(mylist);
  5.     trace(mylist[0]);
  6.     trace(mylist[1]);
  7.     trace(mylist[2]);
  8.     trace(mylist[3]);
  9.     for (i in mylist){
  10.         trace(i);
  11.     }
  12.     for (i in mylist){
  13.         trace(mylist[i]);
  14.     }
  15.     trace (mylist.length);
  16.     for (var i = 0; i <= mylist.length; i++) {
  17.         trace ("Checke Element:" +i);
  18.         trace(user);
  19.     if (mylist[i] == user) {
  20.         trace ("Ist Element " + i);
  21.         _root.gotoAndPlay("hierhin");
  22.         break
  23.     } else {
  24.         _root.ausgabe.text = "Name existiert nicht.";
  25.     }
  26.     }
  27. }

Oder dies, Beispiel2:
ActionScript:
  1. stop();
  2. function vergleichen (welcharray, welchelement) {
  3.     for (var i = 0; i <= welcharray.length; i++) {
  4.         if (welcharray[i] == welchelement) {
  5.             return i;
  6.         }
  7.     }
  8.     return null;
  9. }
  10. this.btn_mc.onRelease = function () {
  11.     trace(user);
  12.     trace(mylist);
  13.     trace(mylist[0]);
  14.     trace(mylist[1]);
  15.     trace(mylist[2]);
  16.     trace(mylist[3]);
  17.     for (i in mylist){
  18.         trace(i);
  19.     }
  20.     for (i in mylist){
  21.         trace(mylist[i]);
  22.     }
  23.     trace (mylist.length);
  24.     for (var i = 0; i <= mylist.length; i++) {
  25.         trace ("Checke Element:" +i);
  26.         trace(user);
  27.     if (vergleichen(mylist, user) == null) {
  28.         trace ("Kein Element " + i);
  29.     } else {
  30.         trace ("Treffer " + i);
  31.         _root.gotoAndPlay("hierhin");
  32.         _root.ausgabe.text = "Ok.";
  33.     }
  34.     }   
  35. }

Wird alles schön abgearbeitet, aber es wird keine Übereinstimmung gefunden, obwohl auch hier in beiden Fällen das Eingabefeld mit der Eingabe ausgegeben wird über trace und dann das array abgearbeitet wird.
Angehängte Dateien
Dateityp: zip extvartoarray.zip (7,1 KB, 7x aufgerufen)
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.

Geändert von questionner (14-03-2005 um 14:46 Uhr)
questionner ist offline   Mit Zitat antworten
Alt 14-03-2005, 20:27   #4 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
Hmm, grübel, grübel ... also auch wenn ich die Testfelder mal weglasse und nur die TXT mit diesem Inhalt (benutzer4=tom,jerry,ich,du) lade und lasse den Arrayinhalt auflisten, wird er er korrekt im Textfeld angezeigt.

Trace ich dann im Testmodus kommt alles drin vor, aber die Übereinstimmung wird nicht wahrgenommen. Ich bekomme immer für user die Eingabe angezeigt, z.B. tom. Dann das Array bzw. die Inhalte -> tom,jerry,ich,du

oder:

tom
jerry
ich
du

oder:

du
ich
jerry
tom

Eben alles da. Dann wieder tom und die Arraylänge 4. Dazu den jeweiligen Check, aber nie eine Übereinstimmung. Sehe ich im Dunkeln das Lichtlein nicht?
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner ist offline   Mit Zitat antworten
Alt 15-03-2005, 02:44   #5 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
hi.

kann es ein problem darstellen, daß du «mylist» nirgendwo als
array definiert hast? sofern ich weiß, sollte man doch bei as2
alles definieren.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 15-03-2005, 09:20   #6 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
Nee, meine nicht. Es wird ja ausgegeben. Nur beim Vergleich ist keine Übereinstimmung da, weil das Arrayelement konkret ausgegeben wird und das Input samt Infos zum Textfeld. Vielleicht liegt es daran. Muss ich mal weiter testen.
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner ist offline   Mit Zitat antworten
Alt 15-03-2005, 16:06   #7 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
Warum alle deine Textfelder haben "Text als HTML wiedergeben" ???
__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 15-03-2005, 16:19   #8 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
Nee! Schreck! , Sag bloß, ich habe aus Versehen bei einem das Teil aktiviert und beim Duplizieren es übernommen? Muss mal gucken.
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner ist offline   Mit Zitat antworten
Alt 15-03-2005, 16:49   #9 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
- glaube ich sollte meine Sonnenbrille am Bildschirm absetzen. . Aber im Ernst, tatsächlich render Html aktiviert. Peinlich. Mit dem Code eben auf die Schnelle:

ActionScript:
  1. this.btn_mc.onRelease = function () {
  2.     trace(user);
  3.     trace(mylist[i]);
  4.     for (var i = 0; i <= mylist.length; i++) {
  5.         trace ("Checke Element:" +i);
  6.         trace(mylist[i]);
  7.         if (mylist[i] == user) {
  8.         trace ("Ist Element " + i);
  9.         _root.gotoAndPlay("hierhin");
  10.         break;
  11.     } else {
  12.         _root.ausgabe.text = "Name existiert nicht.";
  13.     }
  14.     }
  15. }

wird jedenfalls die Abfrage durchlaufen und zumindest tom als Element 0 des Arrays akzeptiert. 1-3 werden ignoriert. Aber das ist doch schon mal was. Guck später mal weiter drauf.
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner ist offline   Mit Zitat antworten
Alt 15-03-2005, 17:16   #10 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
ja, ohne sonnebrille ist besser.
PHP-Code:
stop();
this.btn_mc.onRelease = function () { 
    for (var 
0mylist.lengthi++) { 
        if (
mylist[i] == user) { 
            
_root.gotoAndPlay("hierhin"); 
        } 
    }
    
_root.ausgabe.text "Name existiert nicht."

__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 15-03-2005, 19:05   #11 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
naja, Du hast ja Deine noch auf und siehst blau und nur mit einem Auge, aber hast was gesehen, und ich mit 2 Köppen völlig blind. Habe es eben auch gecheckt und folgenden Code platziert:

ActionScript:
  1. //Frame 1:
  2. stop();
  3. var my_lv:LoadVars = new LoadVars();
  4. my_lv.onLoad = function(success:Boolean) {
  5.     if (success) {
  6.         nam0.text = this.benutzer0; // ist ja nur zu Testzwecken, kann auch alles weg!
  7.         nam1.text = this.benutzer1;
  8.         nam2.text = this.benutzer2;
  9.         nam3.text = this.benutzer3;
  10.         nam4.text = this.benutzer4;
  11.        
  12.         mylist = benutzer4.split(","); //ab hier gilt es
  13.        
  14.         gotoAndPlay(2);
  15.         } else {
  16.             trace("Error loading/parsing LoadVars.");
  17.             nam.htmlText = "Fehler beim Laden!";
  18.     }
  19. };
  20. my_lv.load("namen.txt");
  21.  
  22. //Frame 2:
  23. stop();
  24. var success = false;
  25. this.btn_mc.onRelease = function () {
  26.     trace(user);
  27.     if (user != undefinded) {
  28.     user = user;
  29.     trace (mylist.length);
  30.     for (var i = 0; i <= mylist.length; i++) {
  31.         if (user == mylist[i]) {
  32.         trace ("Checke Element:" +i);
  33.         trace ("Ist Element " + i);
  34.         _root.gotoAndPlay("hierhin");
  35.         success = true;
  36.         }
  37.     }
  38.     if (false == success) {
  39.         _root.gotoAndStop(2);
  40.         _root.ausgabe.text = "Name existiert nicht.";
  41.     }
  42.     }
  43. }

Dank für den Zaunpfahl.
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner 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 09:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele