2012-10-08 34 views
6
var canvas = <HTMLCanvasElement>document.getElementById('canvas1'); 
var gl = canvas.getContext('webgl'); 
canvas.width = 400; 
canvas.height = 400; 
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 

“HTMLCanvasElement”似乎只提供2d画布方法。它不会让我编译gl.viewport()等。我如何为WebGL添加此支持?如何将WebGL等浏览器功能添加到TypeScript?

回答

10

您需要在使用它们之前定义WebGL方法。你可以找一些社区书写WebGL打字here。将WebGL.d.ts添加到您的项目中,并将其称为:

///<reference path="WebGL.d.ts" /> 

var canvas = <any>document.getElementById('canvas1'); 
var gl = <WebGLRenderingContext> canvas.getContext('webgl'); 
canvas.width = 400; 
canvas.height = 400; 
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 
+2

谢谢,非常有帮助。顺便说一下,我很尴尬地说,这实际上是在开始时在语言规范中解释的,我通常只是略过这些东西,但在Typescript中它被称为“Ambient Declarations”。 – Blub