Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-01-2004, 14:35   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 30
einfaches split, 2-dimensionales split

Irgendwie raff ichs nicht, wieso mein split() hier nicht funzt?

ActionScript:
  1. gemObjekt = SharedObject.getLocal("zieldaten");
  2. zielArray = [];
  3. zielArray = gemObjekt.data.ziel.split("&");
  4. trace(zielArray[0]);

Vorallem weil
ActionScript:
  1. gemObjekt = SharedObject.getLocal("zieldaten")
  2. trace(gemObjekt.data.ziel);

durchaus richtige Daten liefert...

Muss ich vielleicht das "&" escapen?

Noch eine Frage:
Ich will ein 2-dimensionales Array erzeugen, mit Schüssel-Wert-Paaren. Ansatz:

ActionScript:
  1. gemObjekt = SharedObject.getLocal("zieldaten");
  2. zielArrayTmp = [];
  3. zielArrayTmp = gemObjekt.data.ziel.split("&");
  4. for (i=1;zielArrayTmp.length;i++) {
  5. zielArray[i] = zielArrayTmp[i].split("=");
  6. }
  7. trace(zielArray[0]);

Würde das so gehen? Kanns ja nicht testen, da Dingens oben schon nicht geht...

Stefan
ssxp ist offline   Mit Zitat antworten
Alt 29-01-2004, 14:57   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

vermutlich hast du ein einleitendes &, somit ist der erste Array-Index leer...

Prinzipiell funktioniert es.
Beim zweiten Teil musst du zunächst auch das Array definieren und auch bei Index 0 beginnen, die Austrittsbedingung richtig definieren und sicherheitshalber abfragen, ob ein "=" enthalten ist:
ActionScript:
  1. str = "&ich=eins&du=zwei&muller=drei&kuh=vier";
  2. zielArrayTmp = [];
  3. zielArray = [];
  4. zielArrayTmp = str.split("&");
  5. for (i=0;i<zielArrayTmp.length;i++) {
  6.     if(zielArrayTmp[i].indexOf("=") != -1) {
  7.         zielArray[i] = zielArrayTmp[i].split("=");
  8.     }
  9. }
  10.  
  11. trace(zielArray[1]);
Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 29-01-2004, 15:09   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 30
Es hing daran, das mein Objekt, das ich aus meinem SharedObject holte noch kein String war, ein toString() hats erledigt.

Das zweite init, der for-Vertipper und die Ausnahmebedingung hatte ich auch noch nicht gefunden, aber so gehts schneller.

Danke.
ssxp ist offline   Mit Zitat antworten
Alt 29-01-2004, 15:17   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 30
Dabei fällt mir ein, gibts in ActionScript ne Möglichkeit, Arrays nach Schüsselwert auszulesen?

Ansonsten würde ich mir das selber schreiben, global.
Wo hänge ich ein solches Skript an, damit es von überall verfügbar ist?

Stefan
ssxp ist offline   Mit Zitat antworten
Alt 29-01-2004, 15:39   #5 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ja, gibts:

ar = new Array(x:wert1, x:wert2, z:wert3);

schau mal in die Doku, unter sortOn ist ein Beispiel, bin mir da nicht so ganz sicher.
__________________
12:15, press return

Geändert von ludabruda (29-01-2004 um 15:40 Uhr)
ludabruda ist offline   Mit Zitat antworten
Alt 29-01-2004, 15:44   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 30
nope...

Ich meine einen direkten Zugriff a la

Code:
value = myArray.getMyValue(Key);
Selbst bei deinem neuen Array müsste ich doch, um auf den y-Wert zugreifen zu können, angeben:

Code:
yWert = ar[1];
Oder verstehe ich gerade etwas nicht?

Stefan
ssxp ist offline   Mit Zitat antworten
Alt 29-01-2004, 15:52   #7 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
jo, check das mal:

ar = {x:1,y:2,z:3};

trace(ar.z);
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 29-01-2004, 15:53   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 30
OK,
jetzt isses mir klarer, man kann Bezeichner vergeben, danach kann man auf die via Array.<bezeichnername> zugreifen.
Soweit i. O.

Wie schreibe ich jetzt aber z.B.:

ActionScript:
  1. zielArrayTmp = str.split("&");

so, das ich diese Bezeichner beim Spliten vergebe?

Man könnte im ersten Schritt die "&" zum splitten benutzen und dann die "=" durch ":" ersetzen (wofür es, wie ich gerade sehe, auch keine Funktion gibt... *grmpf*).

*grummel* Warum hat Flash keine RegEx?

Stefan
ssxp ist offline   Mit Zitat antworten
Alt 29-01-2004, 15:56   #9 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
mit split, auch keine Ahnung.
Es geht aber auch:

ar["key1"] = "wert1";
ar["key2"] = "wert2";

trace(ar["key1"]);

vielleicht hilft dir das
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 30-01-2004, 09:13   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 30
nur der Vollständigkeit halber...

habe jetzt lieber ne globale Funktion geschrieben, die mir das ArrayHandling abnimmt:

ActionScript:
  1. _global.getArrayEntry=function(array,eKey) {
  2.     eValue = null;
  3.     for (i=0;i<array.length;i++) {
  4.         if (array[i][0] == eKey){
  5.             eValue = array[i][1];
  6.             }
  7.         }
  8.     return eValue;
  9.     }

Das erspart, das man sich beim split zuviel Gedanken macht.

Stefan
ssxp 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 07:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele