Bonjour à tous, depuis peu je me suis mis au Javascript et aujourd'hui je rencontre un souci très gênant.
Voici le code qui me pose problème :
Si je créer un nouvelle objet comme suit :
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
35
36
37
38
39
40 var Input = (function() { function Input(canvasName)//take canvasName instead of canvas { this.__canvasName = 0; this.__mousePosition = 0; this.__mouseButtonLeftDown = 0; this.__mouseButtonRightDown = 0; this.__mouseClick = 0; this.__canvasName = canvasName; this.__mousePosition = new Vector2f(50,0); this.init(); } Input.prototype.init = function() { console.log("INIT:" + this.__canvasName); document.getElementById(this.__canvasName).addEventListener('mousemove',this.update_mousePosition); } Input.prototype.update_mousePosition = function(event) { console.log("UPDATE:"+this.__canvasName); var rect = $('canvas')[0].getBoundingClientRect(); this.__mousePosition = new Vector2f(event.clientX - rect.left ,event.clientY - rect.top); } Input.prototype.mousePosition = function() { return this.__mousePosition; } return Input; }()); Input["__class"] = "Input";
Et que j’exécute mon code, alors la console m'écrit ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var canvasName = 'canvas'; var input = new Input(canvasName); // or Object.create
J'ai l'impression que quand je fais this.__canvasName dans la fonction update_mousePosition, je fait référence à l'objet update_mousePosition et non l'objet Input.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 INIT:canvas UPDATE:undefined
Pourtant la fonction init elle, fonctionne. Je ne vois aucune différence entre les deux mise à part que l'autre fonction reçoit des event...
Merci de votre aide![]()
Partager