Hallo,
imgs.position = 0;
imgs.move = function(delta) {
this.position = (this.position + delta) % this.length; // -length < Ergebnis < length
if (this.position < 0) // neg. Positionen ins Positive verschieben
this.position += this.length;
}
Ok, so ähnlich habe ich mir das gedacht. Das ist schon eine ganz neue Funktion mit mehreren Berechnungen, die die vorhandene Funktion ersetzen muss.
> Für den Komfort kann man sich ja noch sowas hinzufügen:
>
> ~~~javascript
imgs.current = function(delta) {
> return this[this.position];
> }
Und noch drei Zeilen.
Dagegen ensteht bei meinem Vorschlag keine einzige Mehrzeile; das Ding ist mit einer kleinen Abwandlung von konkret 5 vorhandenen Zeilen erledigt, ohne jeden Umbau der Programmlogik.
Das Argument für den Zähler war doch hier immer, dass es einfacher sei. Unter "einfacher" stelle ich mir aber etwas anderes vor ;)
Ja, bei jedem Bild extra hinzugefügt. Und bei einem eventuellen Umsortieren muss alles umnummeriert werden.
Naja, dazu könnte ich auch noch eine kleine Extrafunktion liefern, die das Array kurz durchläuft und die Nummern neu vergibt nach dem Sortieren. Dateinamen und Nummern würde ich ohnehin nicht so hardcodieren, wie in dem Beispiel. Aber vermutlich sind es nur wenige Bilder, dann ist auch das noch vertretbar.
Gruß, Don P