dedlfix: Bildwechsel - Problem mit Zähler

Beitrag lesen

Hi!

Du hast eine Rotierfunktion mit einem Fast-Einzeiler. Eine Zählerverwaltung kann man ebenfalls als Einzeiler schreiben und in einer Funktion kapseln. Der Aufwand ist also ungefähr gleich.
Das glaube ich nicht. Zeig' doch mal, wie du dir das vorstellst.

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;  
}

Sind doch drei Zeilen geworden, als Einzeiler wird es durch Code-Wiederholung zu unübersichtlich. Wenn man dein rotate() ordentlich formatiert, kommt man auf 4 bis 5 Zeilen.

Mit Hoch-/Runterzählen ist es ja nicht getan, man muss auch am Anfang/Ende den Zähler zurücksetzen für die gewünschte Endlosrotation

Ausreißer werden durch die Modulo-Division eingefangen. Negative Werte werden extra korrigiert.

und auch jeweils den Zählerstand abfragen beim Anzeigen eines anderen Bildes mit etwas wie  img.src = imgs[zählerstand];.

Das nimmt sich im Prinzip nichts von deiner Variante, da muss man immer das Element 0 ansprechen. Bei dir kommt noch pfad und nummer als zusätzliche Angabe hinzu. Für den Komfort kann man sich ja noch sowas hinzufügen:

imgs.current = function(delta) {  
  return this[this.position];  
}

Dazu muss der Zählerstand irgendwie global sein bzw. man muss ihn von außerhalb der Anzeigefunktion holen. Das entfällt alles bei meiner Rotationsmethode.

Auf imgs.position zuzugreifen ist nicht aufwendiger.

Aber zu deinem Rotieren muss man zusätzlich noch eine Nummerierung plegen, die bei der Zählervariante schon dabei sind.
Das ist doch nicht wirklich ein Zusatzaufwand, verglichen mit dem für einen Zähler. Die Bildnummer wird einmalig zugeordnet und basta.

Ja, bei jedem Bild extra hinzugefügt. Und bei einem eventuellen Umsortieren muss alles umnummeriert werden.

Lo!

0 78

Bildwechsel - Problem mit Zähler

Heike
  • javascript
  1. 0
    Heike
    1. 0
      Jeremy
  2. 0
    gast42
    1. 0
      Don P
      1. 0
        gast42
        1. 0
          Don P
      2. 0
        MudGuard
        1. 0
          Don P
          1. 0
            dedlfix
            1. 0
              Don P
              1. 0
                dedlfix
                1. 0
                  Don P
                  1. 0
                    dedlfix
                    1. 0
                      Don P
  3. 0
    Don P
    1. 0
      suit
      1. 0
        Don P
        1. 0
          suit
          1. 0
            Don P
            1. 0
              dedlfix
              1. 0
                Don P
                1. 0
                  suit
                  1. 0
                    Don P
                    1. 0
                      suit
                    2. 0
                      dedlfix
                2. 0
                  dedlfix
                  1. 0
                    Don P
                    1. 0
                      dedlfix
                      1. 0
                        Don P
                        1. 0
                          dedlfix
                          1. 0
                            Kai345
                            1. 0
                              Don P
                            2. 0
                              Don P
                              1. 0
                                dedlfix
                                1. 0
                                  Don P
                                  1. 0
                                    dedlfix
                                    1. 0
                                      Don P
                                      1. 0
                                        dedlfix
                                        1. 0
                                          Don P
                                          1. 0
                                            suit
                                            1. 0
                                              Don P
                                              1. 0
                                                suit
                                                1. 0
                                                  Don P
                                                  1. 0
                                                    suit
                                                    1. 0
                                                      Don P
                                          2. 0
                                            dedlfix
                                      2. 0
                                        dedlfix
                                        1. 0
                                          Don P
          2. 0
            Don P
            1. 0
              suit
              1. 0
                Don P
                1. 0
                  suit
                  1. 0
                    Don P
            2. 0

              Algorithmen

              JürgenB
              • menschelei
              1. 0
                suit
              2. 0
                Don P
                1. 0
                  dedlfix
                  1. 0
                    Don P
    2. 0
      Heike
      1. 0
        dedlfix
        1. 1
          Heike
          1. 0
            suit
            1. 0
              Heike
              1. 0
                Felix Riesterer
              2. 0
                dedlfix
              3. 0
                Don P
                1. 0
                  Heike
                  1. 0
                    suit
                    1. 0
                      Heike
                      1. 0
                        Heike
                        1. 0
                          suit
                          1. 0
                            Heike
                            1. 0
                              Heike
                              1. 0
                                suit
                            2. 0
                              suit
                      2. 0
                        suit
          2. 0
            Don P