无法读取属性" texture"来自undefined

时间:2014-07-06 05:12:28

标签: javascript html webgl

我知道这是一个非常常见的问题。我得到一个无法读取属性“纹理”来自undefined.Sorry我是javascript的新手。

javascript部分我的代码如下

this.createTexture=function(Texturename,width,height){
  this.Texture[Texturename]=gl.createTexture();
  this.Texture[Texturename].name=Texturename;
  this.Texture[Texturename].width=width;
  this.Texture[Texturename].height=height;
  return this.Texture[Texturename,width,height];
}

我正在尝试在webgl部分创建我的纹理。

我怎样才能在webgl中调用createTexture?我可以在其中输入texturename,width和height并使函数正常工作。我知道这不会只是创建一个纹理,但它只是一个简单的例子。我试过但是

function exampleTexture(){
Texture.createTexture("moon",1024,1024);
}

它说我的错误在行

this.Texture[Texturename]=gl.createTexture();

谢谢

1 个答案:

答案 0 :(得分:0)

this引用的对象似乎没有Texture属性。在这种情况下:

this.createTexture=function(Texturename,width,height){
  // use this.Texture if available, otherwise init it as an empty object
  this.Texture = this.Texture || {};

  this.Texture[Texturename]=gl.createTexture();
  this.Texture[Texturename].name=Texturename;
  this.Texture[Texturename].width=width;
  this.Texture[Texturename].height=height;
  return this.Texture[Texturename,width,height];
}

关于命名约定的注意事项:在JS中,camelCase通常用于变量,PascalCase用于构造函数。因此,我会将this.Texture重命名为this.textures,将Texturename重命名为textureName