2012-10-08 64 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