我正在开发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/