Knut: Variable bei setInterval

HI,

wie kann ich bei setInterval statt millisekunden eine variable angeben.

Ich will eine fortschritts anzeige für musikfiles(Media Player) schreiben.Aller 10% der gesamt länge soll ein weiters imq eingeblendet werden.

danke
cu
knut

  1. Hallo,

    wie kann ich bei setInterval statt millisekunden eine variable angeben.

    Ich will eine fortschritts anzeige für musikfiles(Media Player) schreiben.Aller 10% der gesamt länge soll ein weiters imq eingeblendet werden.

    var time = 500;
    setInterval('function()', time);

    ich hoffe geholfen zu haben.

    cucu
    Thomas

    1. var time = 500;
      setInterval('function()', time);

      ich hoffe geholfen zu haben.

      Tja das dachte ich auch....nur macht er das nicht. Er sagt immer das die wariable nicht exestiert obwohl sie global vereinbart wurde. jemad sagte mir das es an dem variable typ liegen kann(variant) und das ich es mal in integer versuchen solte....aber ich glaube mich daran zu erinnern das ich nie gtelesen haben das sowas in js geht *s*

      habt ihr gegenteilige erfahrungen?

      cu knut

      1. Moin!

        Tja das dachte ich auch....nur macht er das nicht. Er sagt immer das die wariable nicht exestiert obwohl sie global vereinbart wurde.

        Dann hast Du ein anderes Problem, das mit dem setInterval() ueberhaupt nichts zu tun hat.

        jemad sagte mir das es an dem variable typ liegen kann(variant) und das ich es mal in integer versuchen solte....aber ich glaube mich daran zu erinnern das ich nie gtelesen haben das sowas in js geht *s*

        Die Variablentypen werden JS normalerweise automatisch konvertiert. Eigentlich sollte es an dieser Stelle kein Problem geben.

        Du wirst uns wohl etwas mehr Einblick in Deinen Quellcode gewaehren muessen, wenn wir Dir helfen sollen.

        Calocybe

        P.S. Du weisst, dass es setInterval() erst zusammen mit JavaScript1.2 (ab Netscape 4) gibt?

        1. Die Variablentypen werden JS normalerweise automatisch konvertiert. Eigentlich sollte es an dieser Stelle kein Problem geben.

          Du wirst uns wohl etwas mehr Einblick in Deinen Quellcode gewaehren muessen, wenn wir Dir helfen sollen.

          den genauen quellcode hab ich zwar nicht hier aber ich kann in etwa das schema geben:

          <script>

          [... ganzer haufen anderer functionen und globeler vereinbarungen...]

          var Spielzeit = Math.floor(windows.Media.Duration); // fragt gesamtspielzeit ab und rundet
          var prozent = Spielzeit/100*10; // 10 Prozent der Gesamtspielzeit.
          var zaehler = 0
          setTimeout("aktive=setInterval('control()', prozent)", 2000);

          function control()
          {
          window.image[zaehler-1].src = of.src;
          window.image[zaehler].src = on.src;
          if(Zaehler =10) clearInterval(aktive);return;
          zaehler = zaehler +1;
          }

          //startet nach 2000ms set interval. set interval ruft jeweils aller 10prozent der cliplänge control //auf.Control schieb dann ein bild weiter. Das ganze soll eine fortschrittsanzeige für clips sein.

          </script>
          in der control kommen noch diverse abfragen ob der clip noch läuft oder ob er gestoppt wird e.c.

          Einen Fehler kann ich ausschliesen. nähmliche den der er mir anzeigt. Prozent ist aufjedenfall definiert.*s*

          P.S. Du weisst, dass es setInterval() erst zusammen mit JavaScript1.2 (ab Netscape 4) gibt?

          ja weiß ich. Das ist es nicht.

          1. Hi!

            var Spielzeit = Math.floor(windows.Media.Duration); // fragt gesamtspielzeit ab und rundet

            (Nur so nebenbei) Das Runden kannst Du Dir sparen, Du dividierst sowieso gleich wieder durch 100.

            var prozent = Spielzeit/100*10; // 10 Prozent der Gesamtspielzeit.
            var zaehler = 0
            setTimeout("aktive=setInterval('control()', prozent)", 2000);

            Tja, nach meinem Verstaendnis sieht das ganz ordentlich aus. Aber vielleicht gibt es doch irgendwelche Gueltigkeitsbereich-(Scope-)Probleme. Wenn ja, dann duerfte control ebenfalls Probleme machen, wenn Du prozent durch eine Zahl ersetzt. Du koenntest folgendes versuchen:

            setTimeout("window.aktive=setInterval('window.control()', window.prozent)", 2000);

            Damit werden alle Namen auf den Scope von window bezogen (dort laeuft auch der normale JS-Code). Wenn das nicht hilft, bau halt mal eine eigene Funktion mit aktive=setInterval('control()', prozent) als einziger Zeile (sieht nicht schoen aus, aber wenn's hilft).

            Einen Fehler kann ich ausschliesen. nähmliche den der er mir anzeigt. Prozent ist aufjedenfall definiert.*s*

            Schau mal, mit welchen Browsern das Problem auftritt, und falls mit mehreren, wie die verschiedenen Fehlermeldungen lauten.

            Mehr faellt mir im Moment nicht dazu ein.
            Calocybe

  2. Hallo Knut,

    ich unterstell Dir mal,d aß Du die Länge der einzelnen Stücke kennst, dann genügt es, diese Laufzeit durch 10 zuteilen und das Ergebnis einer Funktion zu übergeben:
    (dummycode:)

    AnzeigeWert = LaufLaenge / 10;
    initLaufBalken AnzeigeWert;

    function initLaufBalken (teilStrich) {
      window.setInterval "laufbalken()", teilStrich;
    }

    So in der Form sollte das gehen (s.a.  <img src="/selfhtml/x3.gif" alt=""> <../../tecb.htm#a44>)