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
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>
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
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;
	}	
});
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...
Je ne comprend pas pourquoi ?