3

所以,我学会了如何使用 dart 在画布中绘制图像,如下所示:

    ///create the image element with given source
    ImageElement myImage = new ImageElement(src:"myImage.png");

    ///load the image
    myImage.onLoad.listen((event){
         ///when the image is loaded, draw it
         myContext.drawImage(myImage, 0, 0);
    });

但是,您如何在以后绘制图像?

如,假设我有一个图像列表:

    List<ImageElement> myImageList;

然后,我想根据它们的来源一一加载我的所有图像元素。完成后,只要我愿意,我就可以去:

    myContext.drawImage(myImageList[i], x, y);

没有此代码在 onLoad.listen 方法中。

4

1 回答 1

3

您可以使用Future.wait等待onLoad每个图像:

Future.wait(myImageList.map((e) => e.onLoad.single)).then((_){
  myContext.drawImage(myImageList[i], x, y);
  // or call function that assumes that images are loaded
});
于 2013-09-30T09:06:27.873 回答