如何缓存稍后在飞镖的 canvas2d 中绘制的图像



所以,我得到了如何使用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 方法中。

您可以使用 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
});

相关内容

  • 没有找到相关文章

最新更新