| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Dec 2003 Ort: Köln
Beiträge: 31
| Mehrdimensionale Arrays innerhalb der for-Schleife killen
Hallo Leutz, hab hier ein kleines Problem mit meinem Skript. Irgendwie bekomme ich es nicht hin nach jedem Schleifendurchgang ein ArrayElement zu löschen. Zum Ursprung: Das ganze sieht so aus, dass ich aus dem Array kartenpos per Random eine Zufallszahl über kartenpos.length ermittel. Dann hole ich mir diesen Wert und füge diesen an einem attachMovie() dran. Dieser wird dann erfolgreich positioniert. So mein Problem ist das Random öfter mal den selben Wert von Kartenpos holt sodass mancher Clip 2x exakt an der selben Stelle plaziert wird. Meine Überlegung wäre nach jedem erfolgreichen positionieren eines MovieClips über attachMovie(), die jeweilige Position im Array einfach zu löschen. So kann dann die Randomfunktion nicht mehr den selben Wert nehmen. Hier mal das Script: function setzePosition(){ kartenpos = [ ["0","0"], //0 ["171","0"], //1 ["342","0"] //2 ["513","0"], //3 ["684","0"], //4 ["855","0"], //5 ["0","166"], //6 ["171","166"], //7 ["342","166"], //8 ["513","166"], //9 ["684","166"], //10 ["855","166"], //11 ["0","332"], //12 ["171","332"], //13 ["342","332"], //14 ["513","332"], //15 ["684","332"], //16 ["855","332"], //17 ["0","498"], //18 ["171","498"], //19 ["342","498"], //20 ["513","498"], //21 ["684","498"], //22 ["855","498"] //23 ]; anzahl = random(10); for(i = 0; i<anzahl; i++){ //Array-Container aller Clips erstellen; clips = new Array("a","b","c","d","e","f","g","h","i","j","k") ; //Zufällig ein MC auswählen; suxx = random(clips.length); //Inhalt des Arrays auslesen; mein = clips[suxx]; //Zufällige x und y - Position des KartenArray ermitteln; zufall = random(kartenpos.length); //Wert der jeweiligen Position holen; zufallsWert = kartenpos[zufall] //X-Werte und Y-Werte in Variablen speichern um diese zu übermitteln; a = zufallsWert[0]; b = zufallsWert[1]; var index = zufall; var anzahl = 1; kartenpos.splice( index, anzahl); trace(kartenpos); _root.createEmptyMovieClip("meinClip"+i, i); _root["meinClip"+i]._x = a; _root["meinClip"+i]._y = b; _root["meinClip"+i].attachMovie(mein, "neuerTest"+i, i); } } setInterval(setzePosition, 2000); Vielleicht könnt ihr mir ja einen Tip geben. Thanx a lot. Grüssle |
| | |
| | #3 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
|
tut es auch, aber nur wenn du das array AUSSERHALB der «function setzePosition()» definierst. denn so wird bei jedem aufruf das komplette ausgangs-array wieder über das alte drüberdefiniert. folglich ändert sich auch die anzahl der array-elemente nicht. was mich im moment verwirrt ist, daß jetzt zwei zahlen statt einer gelöscht werden. [/EDIT] okay, ist ja ein zweidimensionales array ... [/EDIT] bin aber noch dran :-) gruß, gaspode Geändert von gaspode (21-01-2005 um 19:48 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |