我正在使用 WebGL 和 Dart,但我不知道如何检查某个对象是否具有某种方法。例如,在 JavaScript 中,我会检查 WebGL 是否可以通过 window.WebGLRenderingContext
使用,但在 Dart 中是否有同样的方法?
最佳答案
IIRC Dart 的目标之一是规范浏览器定义内容的不一致。因此,WebGL 将始终“可用”,因为它的接口(interface)将始终存在于 Dart 中,无论您运行的浏览器是否已在 native 定义它们。
最好以与 Javascript 中相同的方式检查是否支持 WebGL:
WebGLRenderingContext gl = canvas.getContext("experimental-webgl");
如果 gl
为 null,则不支持 WebGL。否则就是!
(顺便说一句:仅仅因为 Javascript 中存在 window.WebGLRenderingContext
并不意味着支持 WebGL!这只告诉您浏览器能够调度 WebGL 命令。您正在运行的系统可能不接受它们。最好还是尝试创建一个上下文并检测它何时失败。)
关于webgl - 检查 Dart 中的 WebGL 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918830/