Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-04-2004, 11:35   #1 (permalink)
Fear & Loathing
 
Benutzerbild von Dr. Gonzo
 
Registriert seit: Oct 2003
Beiträge: 115
Anzahl der Elemente eines Arrays ? also nicht nur den letzten index -> array.length

hi,

- habe einen Array in dem mehrere MC's stecken
- lösche mir mit splice einzelne elemente...

wenn ich jetzt wieder neue elemente hinzufüge, bekommt das hinzugefügte Element einen höheren index als elemente im array sind, ist ja auch klar.

Beispiel:

array(mc1, mc2, mc3)
->lösche mc2
->füge mc4 hinzu
array(mc1, mc3, mc4)
index von mc4 ist dann 3!!
müsste bei 3 elementen ja aber 2 sein

das heisst also die index wird beim löschen von elementen mit splice nicht zurückgesetzt sondern läuft ganz normal weiter ???
und somit bekomme ich mit array.length für mich unbrauchbare werte...

gibt es eine möglichkeit mir nicht den letzten index (array.length) sonder die tatzächliche anzahl an elementen ausgeben zu lassen ???
oder kann ich beim löschen eines elements auch den index zurücksetzten ???

greetz

Geändert von Dr. Gonzo (06-04-2004 um 11:37 Uhr)
Dr. Gonzo ist offline   Mit Zitat antworten
Alt 06-04-2004, 12:08   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Deine Beobachtung kann ich nicht nachvollziehen:

ActionScript:
  1. a = [1,2,3];
  2. trace("a:" + a + " length:" + a.length);
  3. a.splice(1,2);
  4. trace("a:" + a + " length:" + a.length);
  5. a.push(6);
  6. trace("a:" + a + " length:" + a.length);

Ausgabe:
a:1,2,3 length:3
a:1 length:1
a:1,6 length:2


mfg .r
bokel ist offline   Mit Zitat antworten
Alt 06-04-2004, 12:33   #3 (permalink)
Fear & Loathing
 
Benutzerbild von Dr. Gonzo
 
Registriert seit: Oct 2003
Beiträge: 115
mhhh...

ich push mir die element auch nicht in meinen mc sondern schreib mir bei klick auf einen button jedes mal so einen neue mc in den array:
ActionScript:
  1. _global.mc[z] = liste.createEmptyMovieClip("mc#"+z,5*z);

glaub muss meine ganze array struktur nochmal überdenken...
bekomme z.B auch bei der ausgabe meiner Array elemente komische sachen angezeigt:

wenn ich einnmal den button geklickt habe (also ein element in meinem array sein müsste)

bekomme ich sowas als arraiynhalt getracet:
------------------------------------------
undefined
-richtiger pfad des elements
undefiend
------------------------------------------

wenn ich noch ein element hinzufüge:
------------------------------------------
undefiend
-richtiger pfad des elements
-richtiger pfad des elements
undefiend
------------------------------------------

und jetzt kommt's, wenn ich das letzte element lösche und ein neues hinnzufüge bekomm ich sowas:
-----------------------------------------------------------
undefiend
-richtiger pfad des ersten elements
undefiend
undefiend
-richtiger pfad des hinzugefügten elements
undefiend
------------------------------------------------------------

kann sich das IRGENDWIE ein erklären
ich nicht!

Geändert von Dr. Gonzo (06-04-2004 um 12:34 Uhr)
Dr. Gonzo ist offline   Mit Zitat antworten
Alt 06-04-2004, 12:36   #4 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Dein z zeigt auf einen Eintrag hinter der aktuellen Länge des Arrays. Dadurch entstehen Löcher mit dem Inhalt undefined.

ActionScript:
  1. a = new Array();
  2. a[7] = 123;
  3. for( var i=0; i<a.length; i++){
  4.     trace(a[i]);
  5. }

Ausgabe
undefined
undefined
undefined
undefined
undefined
undefined
undefined
123
bokel ist offline   Mit Zitat antworten
Alt 06-04-2004, 13:01   #5 (permalink)
Fear & Loathing
 
Benutzerbild von Dr. Gonzo
 
Registriert seit: Oct 2003
Beiträge: 115
dass, das lücken sind hab ich mir fast schon gedacht
aber warum sind die da ???

wie kann es denn sein das mein array, wenn ich ihm einen mc zuweise am anfang und am ende eine lücke hat ???
am ende hat ein array immer eine lücker !?!?!?!?

array.length berücksichtigt diese lücken ja auch, weil er einfach nur vom letzten index ausgeht...
und genau DAS ist mein problem!

Geändert von Dr. Gonzo (06-04-2004 um 13:02 Uhr)
Dr. Gonzo ist offline   Mit Zitat antworten
Alt 06-04-2004, 13:11   #6 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Das Array hat Lücken, weil z > length ist.
Ich würde push benutzen, wenn du einfach nur hinten was anhängen willst.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 06-04-2004, 14:40   #7 (permalink)
Fear & Loathing
 
Benutzerbild von Dr. Gonzo
 
Registriert seit: Oct 2003
Beiträge: 115
ah ok, ..klar..

habs jetzt so gelöst:

- erstell mir einen zähler der beim klick auf hinzufügen ++ und bei klick auf entfernen -- somit hab ich ne variable in der immer steht wieviele elemente ich zur Zeit tarzächliche habe.

wärde mit bei gelegenheit aber auch mal die push variante reinziehen

greetz und Danke
Dr. Gonzo 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:47 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele