SetTimeout et inner.HTML
Posté : 03 juin 2007, 00:13
Bonsoir;
Il est déjà tard ..
Pfff, je cherche solution à un problème qui ne devrait pas
se poser !! Voila dabord le code :
Ce code affiche un compte a rebour constant, quand il est fini, il recommence.
C'est pour aller avec un jeu online, dont les parties dures environ 3 minutes
et 1 minute de pause entre chaques.
Il fallait que je fasse en sorte que lorsque l'on arrive dans la partie n'importe quand,
chaque personne du jeu doit avoir le meme temps restant affiché. Je fais donc un calcul
avec time() pour avoir une valeur fixe.
Seulement le problème c'est que meme si le code fonctionne et affiche
quelque chose, mon div ne se rafraichi pas ^^
Alors je ne veut pas d'ajax, je veisn justement de refaire la fonction en javascript car avec l'ajax, sur IE6, le rafraichissement change le curseur de la souris tt les x secondes en un sablier, c'est très chi**t ...
Voila, j'espère avoir été clair !! huhu.
Bonne nuit a tous et si vous avez une idée ??
PS : le code est executable directement si vous souhaites le tester !
Il est déjà tard ..
Pfff, je cherche solution à un problème qui ne devrait pas
se poser !! Voila dabord le code :
<?
//on regarde si une session a déjà été lancé
if(!isset($_SESSION['user_w_bad'])){
session_start();
}
?>
<script>
function chronos(){
// définition des variables
var duree = 180;
var pause = 60;
var partie = duree + pause;
var depart = <?=time()?>;
var calcul = depart % partie;
var minutes = 0;
var secondes = 0;
//calcul des variables
calcul = calcul + pause;
calcul = ((calcul - partie)*(-1));
minutes = Math.round(calcul / 60);
secondes = calcul % 60;
// vérifie si on est ingame ou en pause
if (secondes>0){
//INGAME
if (secondes < 10 && secondes > 0)secondes = "0" + secondes;
document.getElementById("play_timer").innerHTML = '';
document.getElementById("play_timer").innerHTML = ("Ingame - " + minutes + ":" + secondes);
}
else
{
// PAUSE
secondes = pause - (secondes * (-1));
if (secondes < 10 && secondes > 0)secondes = "0" + secondes;
document.getElementById("play_timer").innerHTML = '';
document.getElementById("play_timer").innerHTML = ("Breack - " + minutes + ":" + secondes);
}
// relance la fonction
setTimeout('chronos();',500);
}
</script>
<div id="play_timer" style="position:absolute; top:100; left:100; height:200; width:200">d
<script>
chronos();
</script>
</div>
Et une petite explication:Ce code affiche un compte a rebour constant, quand il est fini, il recommence.
C'est pour aller avec un jeu online, dont les parties dures environ 3 minutes
et 1 minute de pause entre chaques.
Il fallait que je fasse en sorte que lorsque l'on arrive dans la partie n'importe quand,
chaque personne du jeu doit avoir le meme temps restant affiché. Je fais donc un calcul
avec time() pour avoir une valeur fixe.
Seulement le problème c'est que meme si le code fonctionne et affiche
quelque chose, mon div ne se rafraichi pas ^^
Alors je ne veut pas d'ajax, je veisn justement de refaire la fonction en javascript car avec l'ajax, sur IE6, le rafraichissement change le curseur de la souris tt les x secondes en un sablier, c'est très chi**t ...
Voila, j'espère avoir été clair !! huhu.
Bonne nuit a tous et si vous avez une idée ??
PS : le code est executable directement si vous souhaites le tester !