Anzeige

Arrayinhalt als Assoziativwert setzen

Arrayinhalt als Assoziativwert setzen | PSD-Tutorials.de

Erstellt von Falco87oeag, 14.08.2008.

  1. Falco87oeag

    Falco87oeag Guest

    Arrayinhalt als Assoziativwert setzen
    Aloha PSDler

    ich habe mir eine Klasse in AS3 erstellt, die PHPs vom Server aufruft und derren Rückgabewerte mittels verschiedener Split Prozeduren verarbeitet. Eigentliches Ziel dabei war, das ganze am Ende als Assoziativarray zu pushen.
    Da ich diese Funktion für ca 10 Aufrufe brauche und ich für alle die selbe Funktion benutzen will, muss das ganze generisch und nicht hardcodiert sein.

    hier zur Stelle wo ich dann irgendwann hängen geblieben bin:

    var testArray:Array = new Array();
    Code (Text):
    1.  
    2. testArray.push({name1:"String1", name2:"String2", name3:"String3", name4:"String4"});
    die Strings können ja ganz normal auch Arrayzellen sein. Was ich aber zusätzlich brauche, ist ein weg, mit dem ich die Arraybenamung (also name1, name2, name3, name4) aus einer Arrayzelle nehmen kann. Problem sit (so wie ich das analysiert habe) das er den Teil vor dem Doppelpunkt sofort in einen String umwandelt (ich also in dem falle den array dann über
    Code (Text):
    1. testArray[0]["name1"]
    ansprechen muss) und somit, da name1 zB eine Variable gewesen sein kann ( in meinem Falle sogar ist), die information die in meiner variablen name1 steckt verloren geht. name1-4 sind in meinem testbeispiel temporäre variablen, weil Flash sofort einen Fehler schmeisst, wenn ich vor dem Doppeltpunkt eckige Klammern benutze

    "1084: Syntax error: expectiing colon before leftbracket"

    Also entweder Flash kann das nicht, oder ich ken ndie Syntax nicht ;)
    Wär nett wenn mir da jemand auf die Sprünge helfen könnte oder ein Workaround parat hat.

    lg
     
    #1      
  2. Falco87oeag

    Falco87oeag Guest

    Arrayinhalt als Assoziativwert setzen
    AW: Arrayinhalt als Assoziativwert setzen

    Okay, ich hab die Lösung selber gefunden. Assoziativarrays sollte man in AS3 nicht als Array sondern als Object definieren.
    Dann kann man im Index eine Stringvariable stehen haben. zB so:

    Code (Text):
    1.  
    2. myKeyString:String="key";
    3. myValueString:String="value";
    4. var resultArray:Object = new Object();
    5. resultArray[myKeyString]=myValueString;
    6.  
    7. trace(resultArray[myKeyString]);    // trace ist 'value'
    8.  
    gruss
     
    #2      
x
×
×
teststefan