Image 如何在dart中缓存稍后在canvas2d中绘制的图像?
所以,我学会了如何使用dart在画布上绘制图像,它是这样的:Image 如何在dart中缓存稍后在canvas2d中绘制的图像?,image,caching,canvas,dart,2d-context-api,Image,Caching,Canvas,Dart,2d Context Api,所以,我学会了如何使用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
///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;
此代码不在onLoad.listen方法中。您可以在每个图像上使用等待onLoad
:
Future.wait(myImageList.map((e)=>e.onLoad.single))。然后((){
myContext.drawImage(myImageList[i],x,y);
//或调用假定已加载图像的函数
});
非常感谢。未来是可怕的。另一方面,我想补充一点(在展望未来之后),window.animationFrame的未来非常棒。基本上,我所做的是将代码封装到一个空图(double dt)中,然后调用window.animationFrame.then(draw)。这使我能够灵活地清除每个帧之间的画布,并让未来处理一切。作为一种优化,我扩展了ImageElement以添加一个isLoaded标志,这样,如果我在未加载图像时调用draw on draw,就不用尝试绘图了。不客气。别忘了验证答案。完成:)抱歉,stackoverflow的新功能。
myContext.drawImage(myImageList[i], x, y);