Bonjour,
Je d�bute en js, et cherche a faire le script suivant :
j'ai un objet engine, qui a une methode run(), et je veux appeler p�riodiquement run d'une instance de engine via setInterval. Voila mon code
index.html
engine.js
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <html> <head> <title>Test</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <script type="text/javascript" src="./sources/prototype.js"></script> <script type="text/javascript" src="./sources/engine.js"></script> <script type="text/javascript"> function Start() { var engine = new MyEngine(); engine.configure(); engine.start(); } </script> </head> <body onload="Start();"> </body> </html>
donc quand je charge ma page, d'apr�s le debugeur js de chrome, je commence bien par passer dans mon initialize qui init les deux propri�t�s, puis je passe ensuite dans mes run, mais des le premier run les valeur de m_lastTime et m_startTime ne sont plus initialis�es. Je n'ai pas cons�quent jamais l'alerte car mon total vaut NaN...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 var MyEngine = Class.create( { initialize: function() { this.m_lastTime = 0; this.m_startTime = new Date().getTime(); }, start: function() { setInterval(this.run, 15); }, configure: function() { // rien pour l'instant }, run: function() { var timeNow = new Date().getTime(); if (this.m_lastTime != 0) { var elapsed = timeNow - this.m_lastTime; var total = timeNow - this.m_startTime; if (total > 1000) { alert("more than 1000 elapsed !"); } } this.m_lastTime = timeNow; } });
Je ne comprend pas pourquoi ?
Partager