unterbrechen eines algrithmus
michael
- javascript
hallo
könnte mir jemand erklären wie ich bei meinem photoalbum (codes von diversen quellen inkl. eigene ergänzungen) eine 'stop' funktion einbauen kann, die den timer stoppt und das aktuelle bild anzeigt?
der code ist der folgende:
var geschwindigkeit=5;
var i=0;
var zeige = 0;
var aktuelleBreite = 0;
var Breite = 400;
var Geschwindigkeit = 20;
function Blaettern(Richtung)
{
zeige = zeige + Richtung;
if(zeige > Bild.length - 1) zeige = 0;
else if(zeige < 0) zeige = Bild.length - 1;
if(document.all)
{
document.all.mili.innerHTML =
"<layer width=400 height=400><img src="" + text[zeige].src + ""></layer>";
document.all.Bildbereich.style.clip = "rect(0 0 400 0)";
document.all.Bildbereich.innerHTML =
"<layer width=400 height=400><img src="" + Bild[zeige].src + ""></layer>";
}
else if(document.layers)
{
document.layers[0].document.open();
document.layers[0].document.write("<img src="" + Bild[zeige].src + "">");
document.layers[0].document.close();
document.layers[0].clip.right = 0;
document.layers['kili'].document.open();
document.layers['kili'].document.write("<img src="" + text[zeige].src + "">");
document.layers['kili'].document.close();
}
BildAufbauen();
}
function BildAufbauen()
{
if(aktuelleBreite <= Breite)
{
if(document.all)
document.all.Bildbereich.style.clip="rect(0 "+ aktuelleBreite + " 400 0)";
else if(document.layers)
document.layers[0].clip.right = aktuelleBreite;
aktuelleBreite = aktuelleBreite + Geschwindigkeit;
window.setTimeout("BildAufbauen()",0);
}
else
{
aktuelleBreite = 0;
if(document.all)
document.all.Bildbereich.style.clip="rect(0 " + Breite + " 400 0)";
else if(document.layers)
document.layers[0].clip.right = Breite;
}
}
function Init()
{
zeige=0;
if(document.all){
document.all.mili.innerHTML =
"<layer width=400 height=400><img src="" + text[0].src + ""></layer>";
document.all.Bildbereich.innerHTML =
"<layer width=400 height=400><img src="" + Bild[0].src + ""></layer>";}
else if(document.layers)
{
document.layers['kili'].document.open();
document.layers['kili'].document.write("<img src="" + text[0].src + "">");
document.layers['kili'].document.close();
document.layers[0].document.open();
document.layers[0].document.write("<img src="" + Bild[0].src + "">");
document.layers[0].document.close();
}
}
function display(){
rtime=etime-ctime;
if (rtime>60)
m=parseInt(rtime/60);
else{
m=0;
}
s=parseInt(rtime-m*60);
if(s<10)
s="0"+s
window.status="Time Remaining : "+m+":"+s
window.setTimeout("checktime()",1000)
}
function Play(){
var zeige=0;
var time= new Date();
hours= time.getHours();
mins= time.getMinutes();
secs= time.getSeconds();
etime=hours*3600+mins*60+secs;
etime+=geschwindigkeit;
checktime();
}
function checktime(){
var time= new Date();
hours= time.getHours();
mins= time.getMinutes();
secs= time.getSeconds();
ctime=hours*3600+mins*60+secs
if(ctime>=etime){
expired();
}
else
display();
}
function expired(){
Blaettern(1);
if (zeige>5) {
window.status="";
Init()}
else Play();
}
function speed(m){
if (m>0) {geschwindigkeit++;}
else {geschwindigkeit--;}
}
// -->
</script>
herzlichen dank
gruss michael
könnte mir jemand erklären wie ich bei meinem photoalbum (codes von diversen quellen inkl. eigene ergänzungen) eine 'stop' funktion einbauen kann, die den timer stoppt und das aktuelle bild anzeigt?
Starte den Timer ueber eine Referenz:
var ref;
ref=setTimeout("Funktion()",millisek);
Dann kann dieser Timer mittels clearTimeout(ref) wieder angehalten werden.
MfG, Thomas