Announcement

Collapse
No announcement yet.

Zählvariable

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zählvariable

    Hallo, wie kann ich in folgendem Code erreichen, dass die Bilder,
    die gezählt werden von 0 und nicht von 1 beginnen.
    a++ muss gleich am Anfang der Funktion stehen, sonst funktioniert das
    nicht. Auch kann ich nicht var =-1 schreiben

    Danke!!

    Code:
    <script language="javascript" type="text/javascript">
      var bild1=new Image;
      bild1.src="flaggen/evolution_1.jpg";
      var leer=new Image;
      leer.src="flaggen/leer.jpg";
    
      var a=0;
    
      function eins(){
          a++;
         if (a<5){
    
         window.document.images[a].src=bild1.src;
         window.document.images[a-1].src=leer.src;
    
         }
      else {
         window.document.images[4].src=leer.src;
          a=0
    
      }
        setTimeout ('eins()',100);
      }
    HTML Code:
    <body onload="eins()">........
    Gruß, Iago

  • #2
    Hallo,

    Originally posted by Iago View Post
    Hallo, wie kann ich in folgendem Code erreichen, dass die Bilder,
    die gezählt werden von 0 und nicht von 1 beginnen.
    Sorry, aber ich kann in dem Code nichts erkennen was auf eine Zählung schließen läßt. Und wenn du die Schleifenvariable a meinst, die beginnt bereits bei 0.

    Originally posted by Iago View Post
    ..a++ muss gleich am Anfang der Funktion stehen, sonst funktioniert das nicht.
    Warum?

    Originally posted by Iago View Post
    ..
    Auch kann ich nicht var =-1 schreiben
    Warum?

    Vlt. solltest du besser beschreiben WAS du als Ergebnis haben möchtest und fragen welche Alternative es zu deinem Code gibt. Ansonsten versteht hier keiner wo das Problem ist!

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo, zunächst einmal dankeschön!!

      ja, also die Schleifenvariable a beginnt mit 0 ist aber, wenn das Objekt

      window.document.images[a].src=bild1.src;
      definiert wird, bereits bei 1.

      D. h., dass das Bild, das in der Variablen 1 steht nun an
      window.document.images[1] übergeben wird und nicht
      an
      window.document.images[0]


      Das ganze ist ja eine Animation, in der 1 Bild verschiedene in HTML vorher platzierte Bilder durchläuft. Die Animation beginnt somit nicht mit dem
      ersten Bild sondern mit dem zweiten

      Also, sorry, aber wie schon gesagt, wenn ich der Funktion erst die Objeke schreibe und dann mit a++ hochzähle gibt das eine Fehlermeldung und zwar:

      window.document.images[...] ist 0 oder kein Objekt

      Genauer genommen muss a++ auch vor der if-Abfrage stehen, damit es
      zu keiner Fehlermeldung kommt.

      Comment


      • #4
        window.document.images[...] ist 0 oder kein Objekt
        Das wird wohl eher aus der Zeile

        window.document.images[a-1].src=leer.src;

        kommen, da 0-1 = -1 ist und dieser Index unzulässig ist

        Hier wäre mal das Konzept darzustellen und ggf. zu ändern
        Christian

        Comment


        • #5
          Hallo,
          Originally posted by Iago View Post
          ...a++ muss gleich am Anfang der Funktion stehen
          Originally posted by Iago View Post
          ..Genauer genommen muss a++ auch vor der if-Abfrage stehen, damit es
          zu keiner Fehlermeldung kommt.
          Das ist also nur einer Annahme von dir geschuldet und keine zwingende Maßgabe!?

          Originally posted by Iago View Post
          ..Das ganze ist ja eine Animation, in der 1 Bild verschiedene in HTML vorher platzierte Bilder durchläuft. Die Animation beginnt somit nicht mit dem
          ersten Bild sondern mit dem zweiten...
          Also wenn ich dich richtig verstehe, dann hast du eine Anzahl n an "leeren" Bildern (sozusagen als Container) die nacheinander ein bestimmtes Bild anzeigen sollen. Richtig!?
          Für den Fall:
          [highlight=javascript]
          var bild1 = new Image;
          var leer = new Image;

          bild1.src = "flaggen/evolution_1.jpg";
          leer.src = "flaggen/leer.jpg";

          var a = 0; // Startwert
          var n = 5; // Anzahl der Bildcontainer

          function eins()
          {
          var images = document.getElementsByTagName('img');

          // Zuerst wird das "aktuelle" ein Leeres Bild und gleichzeitig der Zähler
          // um eins erhöht
          images[a++].src = leer.src;

          // Bei "Überlauf" get es wieder bei 0 los
          if (a > n) {
          a = 0;
          }

          // erst zum Schluß wird das "neue" Bild gesetzt
          images[a].src = bild1.src;

          setTimeout(eins, 100);
          }
          [/highlight]

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Ah ok. , sorry,

            ich habe die Bilder ganz einfach über HTML definiert:

            HTML Code:
            <img src="D:/HTML/rehearsal/flaggen/leer.jpg" width="100" height="300" style="border: 0px;" />
            <img src="D:/HTML/rehearsal/flaggen/leer.jpg" width="100" height="300" style="border: 0px;" />
            <img src="D:/HTML/rehearsal/flaggen/leer.jpg" width="100" height="300" style="border: 0px;" />
            <img src="D:/HTML/rehearsal/flaggen/leer.jpg" width="100" height="300" style="border: 0px;" />
            <img src="D:/HTML/rehearsal/flaggen/leer.jpg" width="100" height="300" style="border: 0px;" />
            ...


            Gruß, Iago

            Comment


            • #7
              Hier habe ich einen ähnlichen Fall:

              function abfrage(){
              if (document.getElementById){
              breite=screen.width;
              a=breite+20;
              kug=document.getElementById("Kugel");
              bewegen();
              }
              }
              function bewegen(){
              if (a>=-150) {
              a-=10;
              kug.left=a;
              kug.top=100;
              window.setTimeout('bewegen()',20);
              }

              Ich hole das Bildelement mit getElementById und speichere es in kug.
              In der Funktion bewegen() wird nun die Bildschirmbreite heruntergezählt und
              das Objekt bewegt sich von rechts nach links über den Bilschirmrand hinaus (-150) (der HTML-Code ist ja jetzt redundant!!)

              Also erst, wenn 10 Pixel heruntergezählt wurden, erscheint das Objekt kug,
              Es wäre ja aber wünschenswert, dass das Objekt VOR dem herunterzählen
              erscheint

              Greez, Iago

              Comment


              • #8
                Hallo,
                Originally posted by Falk Prüfer View Post
                ...Also wenn ich dich richtig verstehe, dann hast du eine Anzahl n an "leeren" Bildern (sozusagen als Container) die nacheinander ein bestimmtes Bild anzeigen sollen. Richtig!?
                Originally posted by Iago View Post
                ...ich habe die Bilder ganz einfach über HTML definiert:
                Das ist keine Antwort auf die Frage! Das ist eher zusammenhanglos und redundant (Ich hatte nicht erwartet das du die Bilder per Javascript erstellt hast)

                Originally posted by Iago View Post
                Hier habe ich einen ähnlichen Fall:
                Ist denn der vorhergehende abgeschlossen und war die vorgeschlagene Lösung richtig?

                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Was weiß ich denn, MANN!
                  meine Frage ist und bleibt EINE EINZIGE FRAGE!!!!!

                  WARUM kann die Zählvariable nicht an einer beliebigen Stellen
                  in der Funktion stehen??

                  Gibt es da irgendwelche Verständnisschwierigkeiten??

                  Comment


                  • #10
                    Originally posted by Iago View Post
                    Was weiß ich denn, MANN!
                    ...
                    Gibt es da irgendwelche Verständnisschwierigkeiten??
                    Ja! Aber offensichtlich bei DIR!

                    Vielleicht solltest du dir das hier mal durchlesen: http://www.tty1.net/smart-questions_de.html

                    Ich wünsch dir noch viel Erfolg bei der Suche nach einer Antwort!
                    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                    Comment


                    • #11
                      Ja gut...,
                      leider ist es eben so, dass in Deinem Beispiel die Grafik auch erst im 2 Bild
                      erscheint.


                      Zunächst das leere Bild:
                      Code:
                      16. images[a++].src = leer.src;
                      Hier ist a=1 und nicht a=0, dasselbe gilt dann für die Grafik:

                      Code:
                      24. images[a].src = bild1.src;
                      Auch bekomme ich für diese zweite Befehlszeile, wenn a den Wert n
                      erreicht hat, eine Fehlermeldung:

                      Zeile 24: 'undefined' ist 0 oder kein Objekt

                      Comment

                      Working...
                      X