所以,我得到了如何使用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
});