Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-04-2004, 14:24   #1 (permalink)
Gedankengestalter
 
Benutzerbild von TheFreeman
 
Registriert seit: May 2002
Ort: Bayern
Beiträge: 486
Assoziatives Array gibt keine Länge zurück

Hi.

folgendes Script:

ActionScript:
  1. // Array beschreiben
  2.     for(var i=1;i<vmcount;i++){
  3.             // Tauchen
  4.         if(vmvar["tp"add i]!=undefined){
  5.             _level0.ArrVMGesamt[String("tp"add i)] = vmvar["tp"add i];
  6.             trace("schleife 1 "add _level0.ArrVMGesamt.length );
  7.         }
  8.             // Wohnen
  9.         if(vmvar["wp"add i]!=undefined){
  10.             _level0.ArrVMGesamt[String("wp"add i)] = vmvar["wp"add i];
  11.             trace("schleife 2 "add _level0.ArrVMGesamt.length);
  12.         }      
  13.     }
  14.     trace("beschrieben!" add _level0.ArrVMGesamt.length);

Die Länge wird als "undefined" zurückgegeben.
Lass ich mir aber die einzelnen Parameter des Arrays
ausgeben, dann gibt er sie mir auch korrekt aus.
Was ist da faul?

Danke schonmal.
__________________
AS3 Lernhilfen
TheFreeman ist offline   Mit Zitat antworten
Alt 19-04-2004, 15:27   #2 (permalink)
der, der Antworten sucht
 
Benutzerbild von ThorstenW
 
Registriert seit: Aug 2002
Ort: neu in Bremen
Beiträge: 393
assoziative Arrays werden (man möge mich korrigieren wenn ich falsch liege) in Flash als Objekte behandelt. Darum haben diese auch die Eigenschaft length nicht.
Du kannst diese "Arrays" folgendermassen durchgehen und die "Länge" ermitteln:
ActionScript:
  1. var arrayLen = 0;
  2. for(var i in assoArray){
  3.   trace(i+"  -->  "+assoArray[i]);
  4.   arrayLen++;
  5. }
  6. trace("Arraylänge: "+arrayLen);
Grüsse
T
ThorstenW ist offline   Mit Zitat antworten
Alt 19-04-2004, 15:42   #3 (permalink)
Gedankengestalter
 
Benutzerbild von TheFreeman
 
Registriert seit: May 2002
Ort: Bayern
Beiträge: 486
AHA !!!

Und wie kann ich zum Inhalt prüfen, das ganze Array ausgeben lassen?

Wenn ich -- trace(_level0.ArrVMGesamt);-- ausgeben lasse, dann gibt er mir absolut nichts aus.
__________________
AS3 Lernhilfen
TheFreeman ist offline   Mit Zitat antworten
Alt 19-04-2004, 15:46   #4 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
da assi-array keine numerischen arrays sind, wird´s auch schwer mit dem counten...hat ThorstenW völlig richt ig schon geschildert...
ich würd allerdings einfach die länge setzen...so dass du sie hast.

bsp
ActionScript:
  1. function setLengthOfAssArray(arr){
  2.          arr.length = null;
  3.          for(var i in arr){
  4.              arr.length+=1;
  5.          }
  6. }
  7.  
  8.  
  9. myArr = [];
  10. myArr.fritz1=[10];
  11. myArr.fritz2=[10];
  12. myArr.fritz3=[10];
  13. myArr.fritz4=[10];
  14. myArr.fritz5=[10];
  15.  
  16.  
  17.  
  18.  
  19. setLengthOfAssArray(myArr);
  20.  
  21. trace('Länge des Arrays = '+myArr.length);


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 19-04-2004, 15:48   #5 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
zu deinem 2. probelem:

da müsstest du dir entweder eine eigene trace-methode für assi-arrays schreiben, oder aber in einer weiteren schleife, ein numerisches arras anlegen, dass dem assi-array gleich ist, und auf das zugreifen...

ich würde allerdings erstere methode vorziehen...


greetz


kelor
kelor ist offline   Mit Zitat antworten
Alt 19-04-2004, 16:04   #6 (permalink)
Gedankengestalter
 
Benutzerbild von TheFreeman
 
Registriert seit: May 2002
Ort: Bayern
Beiträge: 486
oh, wow!

Dankeschön.
__________________
AS3 Lernhilfen
TheFreeman 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 13:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele