Unten ist mein Code, wenn ich in meinem Eventlistener-Objekt hinzufügen:nicht funktionieren kann, in Objekt verwenden mit diesem
this.canvas.addEventListener('mousemove', function (e) {
var canv = document.getElementById("some");
myGameArea.x = (e.clientX - canv.getBoundingClientRect().left);//Look at canv
myGameArea.y = (e.clientY - canv.getBoundingClientRect().top);//Look at canv
});
Es funktioniert, aber nur, wenn ich getElementById verwenden mein Canvas-Element zu finden und dann verwenden canv für meine Bedürfnisse. Aber wenn ich das tun:
this.canvas.addEventListener('mousemove', function (e) {
var canv = document.getElementById("some");
myGameArea.x = (e.clientX - this.canvas.getBoundingClientRect().left);//Look at this.canvas
myGameArea.y = (e.clientY - this.canvas.getBoundingClientRect().top);//Look at this.canvas
});
Dann myGameArea tut Änderung überhaupt und mein Debugger sagt dies: „Nicht abgefangene Typeerror:. Kann nicht lesen Eigentum‚getBoundingClientRect‘undefinierter bei HTMLCanvasElement“. Ich habe Canvas in meinem Objekt vor diesem Teil des Codes deklariert, und ich habe diese.canvas für viele andere Funktionen verwendet. Wo ist mein Problem?
Vielen Dank! Ich weiß es zu schätzen! –
@ZaharZagrava Ich bin froh, dass ich helfen konnte. Achten Sie darauf, die Antwort als [akzeptiert] (https://meta.stackexchange.com/a/5235) zu markieren, wenn es Ihnen geholfen hat, und viel Glück. – stybl