2012-10-08 18 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); 

Chỉ "HTMLCanvasElement" dường như chỉ cung cấp phương thức canvas 2d. Nó sẽ không cho phép tôi biên dịch gl.viewport() vv Làm cách nào để thêm hỗ trợ này cho WebGL?Làm cách nào để thêm hỗ trợ cho các tính năng của trình duyệt như WebGL vào TypeScript?

Trả lời

10

Bạn cần xác định phương pháp WebGL trước khi sử dụng chúng. Bạn có thể tìm thấy một số cộng đồng được viết bằng WebGL gõ here. Thêm WebGL.d.ts vào dự án của bạn và gọi nó là:

///<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

Cảm ơn bạn, rất hữu ích. Bằng cách này, tôi xin lỗi khi nói rằng điều này thực sự được giải thích trong đặc tả ngôn ngữ ngay từ đầu, tôi thường chỉ đọc lướt qua những thứ này nhưng nó được gọi là "Tuyên bố môi trường xung quanh" trong Typescript. – Blub

Các vấn đề liên quan