我正在开发dart webgl应用程序,需要从外部文件加载着色器代码。我发现剩余的代码在加载着色器之前运行,并显示错误。有人可以帮我吗。

最佳答案

我对加载着色器了解不多,但是您可以异步加载资源。使用Future和HttpRequest:

import 'dart:html';

main() {
  HttpRequest.getString(pathToShaderFile).then((shader) {
    // do something with the shader, which is a String
  });
}

getString()方法返回Future,这是一个包含“将来某个时候准备就绪”值的对象。在这种情况下,服务器使用着色器文件响应时,该值(HTTP请求的内容)就准备好了。值准备好后,将触发then()回调。

这是HttpRequest.getString()的文档:https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-dom-html.HttpRequest#id_getString

关于dart - 如何在Dart中同步加载着色器文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25569422/

10-15 05:36