Array mittels Schleife belegen

Bunny1502

Mitglied
Hallo!

Nun ist bei mir folgendes Problem aufgetreten:
Ich habe mehrere Movieclips mc1 bis mc 15.
Deren x-Position möchte ich auslesen und in einem Array speichern.
Kein Fehler entsteht wenn jede Stelle wie folgt belegt wird:
Code:
var testArray  = new Array();
 test.Array[0] = mc1._x;
 test.Array[1] = mc2._x;
 usw.
Dieses Array wird serialisiert und mittels getURL() an ein phpScript gesendet, dieses listet mir die einzelnen Werte auf.
Das funktioniert so ohne Probleme.

Aber jetzt kommt das große ABER:

Belege ich das Array mit einer Schleife
Code:
 var testArray  = new Array();
    
   for (var i = 1; i<=15; i++){
               var obj = this["mc"+i];
               testArray[i] = obj._x;
   }

Gibt mir mein PHP Script keine Werte an.
Das PHP- Script ist so geschrieben, dass es mir, wenn ich wie oben nur zwei Stellen belege
1:123
2:345
anzeigt.
Hat das Array keine Werte wird auch nichts angezeigt


In dem Fall, dass ich es über die Schleife belege wird angezeigt:

1:
2:
3:

14:

Gebe ich das Array in diesem Fall in Flash mittels trace(testArray); aus ist es aber mit den korrekten Werten belegt.

Wie kann das möglich sein?

Gruß, Bunny1502
 
Hi,

1. bist Du sicher, dass "this" in Deiner Schleife auf die Zeitleiste verweist, in der sich die Clips befinden (und nicht z.B. in einem Listener o.ä.)?

2. Du solltest auch beim Füllen per Schleife mit dem Index 0 beginnen:
Code:
for (var i = 0; i<15; i++){
    var obj = this["mc" + (i + 1)];
    testArray[i] = obj._x;
}

3. Lass Dir doch mal in der Schleife den Wert von "obj" per trace ausgeben ...

Gruß
.
 
Vielen Dank!

Es lag an " this", ich hatte das ganze innerhalb einer onRelease-Funktion für einen Button und dann bezog sich das this ja auf den Button.
Aber was gebe ich jetzt Anstelle von this an, wenn ich das ganze wieder in die onRelease-Funktion setzen will?
 
Zurück