HadHa Skrevet 13. april 2012 Skrevet 13. april 2012 (endret) Hei! Sliter litt med at teksturen min ikke vil komme til syne. Er ganske fersk på både javascript og webgl - finner ikke ut hva feilen er. Jeg har (med suksess) brukt dette oppsettet i Main klassen, men vil altså ha det i en extern klasse og kalle på den i stedet. Jeg har gjort de endringene jeg mener er nødvendig, men hverken chrome eller firefox er helt enig Chrome sier følgende: Uncaught TypeError: Cannot read property 'image' of undefined function lagPongBoard {...} lagPongBoard.prototype.setTexture = function () { this.roomTexture = gl.createTexture(); this.roomTexture.image = new Image(); this.roomTexture.image.onload = function () { gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true); gl.bindTexture(gl.TEXTURE_2D, this.roomTexture); gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this.roomTexture.image); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST); gl.generateMipmap(gl.TEXTURE_2D); gl.bindTexture(gl.TEXTURE_2D, null); } this.roomTexture.image.src = "room.gif"; } All hjelp er god hjelp Endret 13. april 2012 av HadHa
MrDonutseeker Skrevet 27. april 2012 Skrevet 27. april 2012 Den finner som du sikkert klare å tolke ut av feilmeldingen ikke image-objektet, og jeg tipper (etter bare å ha skumlest litt) at det har med this å gjøre. This i Javascript er et usedvanlig vanskelig tema, og fungerer ofte ikke helt slik du vil. Jeg anbefaler at du lukker scopet til this ved å sette den til en "var self = this", slik at du bestandig vet hvor du har den This blir nemlig redeklarert i function-scope og skrives frekt over uten at du bestandig vil det. 1
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå