Griever: Sound mehrmals abspielen

Beitrag lesen

Ok. Aber net bös sein ...

<script type="text/javascript">
var Schlagdauer = 4000 // Wave-Datei-Abspiellänge + 1 Sekunde
var schlaege=0,played=false;
function init() { // Diese Funktion im Body (mit-)aufrufen
    var j=new Date();
    var m=j.getMinutes();
    var s=j.getSeconds();
    m=60-m;
    s=60-s;
    m=Number(m*60)+s; // Das Number() objekt benutz ich, weils
                      // bei mir n Fehler gab
    j=j.getHours();   // Nicht mehr gebrauchtes Date-Obj wird mit
                      // Stundenwert überschrieben.
    if(m==1)
    {
    if(j>=13)
    schlaege=j-11;    // j-12+1 = j-11; Logisch, oder? Für 12h anstatt 24h
    else
    schlaege=j+1;     // Da es ja erst z. B. 9:95:59 ist und nicht 10:00
    if(played!=true)
    setTimeout("glockenschlag()",100) // 1/10 Sekunde Zeit abwarten
    }
  setTimeout("init()",500) // Jede halbe Sekunde prüfen.
}

function glockenschlag() {
  schlaege--;
  document.all.glockenschlag.play(); // geht auch getElementById()
  //  document.getElementById("glockenschlag").play();
  if(schlaege!=0)
  {
    played=true;
    setTimeout("glockenschlag()",Schlagdauer)
  }
  else
  played=false
}
</script>

Dieses Script schlägt automatisch zu jeder Stunde. Nun eine Version, die Beim darauf klicken die aktuelle Stunde schlägt:

<script type="text/javascript">
var j="";
var aktuellerschlag="aus";
var schlagdauer = 4000 // wie oben das script ...
function aktuellestunde() {
  if(aktuellerschlag=="aus") // Verhindert mehrmaliges Bimmeln bei Floodklicken.
  {
  j=new Date();
  j=j.getHours();
  schlagen();
  }
}
function schlagen() {
  if(j!=-1)
  {
   j--;
   document.getElementById("glockenschlag").play()
   aktuellerschlag=setTimeout("schlagen()",schlagdauer);
  }
  else
  {
  aktuellerschlag="aus"
  }
}
</script>

Ich hoffe doch, dass dir die Scripts gut gefallen.

Berichtigungen am Code ... Nur keine Hemmungen.

MFG
Griever