我将JavaScript背景图片加载程序转换为Dart,有点像这样:Javascript image loader

我使用计时器来检查图像是否全部加载。
这样就可以了。

但是在Dart中有可链接的 future ,我想知道您是否可以链接
ImageElements的后台加载...

ImageElement a = new ImageElement();
ImageElement b = new ImageElement();
ImageElement c = new ImageElement();

Future.wait([a.src='a.jpg', b.src='b.jpg', c.src='ca.jpg'])
  .then((List responses) => chooseBestResponse(responses))
  .catchError((e) => handleError(e));

当然分配src和实际的图像加载是异步的,因此这将无法工作...

一旦加载每个图像,我还需要一些代码来执行。

也许我需要编写自己的FutureImageElement类,但我想我先问一下...

有任何想法吗 ?

最佳答案

当然,您可以使用 future 。只需使用流的first属性:

var a = new ImageElement(src: 'a.png');
var b = new ImageElement(src: 'b.png');
var c = new ImageElement(src: 'c.png');

var futures = [a.onLoad.first, b.onLoad.first, c.onLoad.first];

Future.wait(futures).then((_) => print('done'));

加载所有三个图像后,将打印文本“完成”。

关于dart - 如何在Dart中链接多个ImageElement加载事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16005805/

10-12 01:58