2010-08-17 17 views
0

J'ai mis en place un diaporama (Slideshow()) en utilisant setTimeout, et cela fonctionne très bien. Je dois limiter le diaporama à 3 répétitions, mais quand j'ajoute une boucle while (count()) il imprime Test 1 et standssetTimeout bloque la boucle

function SlideShow() 
{ 
    setTimeout("document.write('Test 1')", 1500); 
    setTimeout("document.write('Test 2')", 3000); 
    setTimeout("document.write('Test 3')", 4500); 
} 

function Count() 
{ 
    var i=0; 

    do 
    { 
    SlideShow(); 
    i++; 
    } 
    while (i<=3); 
} 

Répondre

0

Cela fonctionne pour moi:

function slideShow() { 
     setTimeout("alert('1');", 1500); 
     setTimeout("alert('2');", 3000); 
     setTimeout("alert('3');", 4500); 
    } 

    function count() { 
     for(var i=0; i<3; i++) { 
      slideShow(); 
     } 
    } 

    count(); 
+0

(Google Chrome) –

+0

Merci pour l'effort - il répète en fait le alert1 3 fois, puis alert2 3 fois, etc. - Désolé - Rhys – Rhys

+0

Qu'est-ce que tu voulais? C'est ce que vous avez décrit ci-dessus * "Je dois le limiter à 3 répétitions" * –

0

Vous pourrait simplement utiliser un timeOut comme dans:

<img id="theImg" /> 
<script> 
    var cnt = 2, 
     i = 0, 
     pics = [ 
      'image1.png', 
      'image2.png', 
      'image3.png' 
     ]; 
    function SlideShow(ap){ 
     if(ap[i]){ 
      //set the src of theImg to the item i of the array 
      document.getElementById('theImg').src = ap[i++]; 
      setTimeout(function(){ 
       SlideShow(ap); 
      }, 1500); 
     }else if(cnt--){ 
      i = 0; 
      SlideShow(pics); 
     } 
    } 
    SlideShow(pics); 
</script> 
+0

Hey - C'est génial, fonctionne un régal – Rhys

+0

Je dois ajouter une chaîne contenant une routine tween après le timer (at}, 1500);). J'ai les routines à l'intérieur des variables var1, var2 etc. quelque chose comme "tween = 'var' + i; echo tween;". La syntaxe semble incorrecte, car elle ne fonctionnera pas. Si j'entre manuellement une chaîne Tween, cela fonctionne bien, mais je dois faire correspondre chaque routine à la photo de diapositive appropriée. – Rhys

+0

J'ai compris, j'ai utilisé un autre tableau pour les tweens – Rhys