HadHa Skrevet 13. april 2012 Del 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 Lenke til kommentar
MrDonutseeker Skrevet 27. april 2012 Del 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 Lenke til kommentar
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å