我在https://github.com/dzenanr/educ_memory_game中遇到了闪烁双图像的问题。
在 view/board.dart 的 Board 类中,_imageBox 方法中的以下代码创建并加载图像:
var imagePath = 'images/${cell.image}';
ImageElement image = new Element.tag('img');
image.src = imagePath;
image.onLoad.listen((event) {
context.drawImageToRect(image, new Rect(x, y, boxSize, boxSize));
});
单击板单元格会显示一秒钟的图像。当发现相同的 2 个图像时,这些孪生图像保持显示,但它们每秒闪烁一次(计时器刷新间隔)。
为了解决闪烁问题,我在 Board 类的构造函数中创建了这些图像:
for (var cell in memory.cells) {
ImageElement image = new Element.tag('img');
image.src = 'images/${cell.image}';
imageMap[cell.image] = image;
}
然后,我从地图中获取图像。但是,以下两个都不起作用:
ImageElement image = imageMap[cell.image];
image.onLoad.listen((event) {
context.drawImageToRect(image, new Rect(x, y, boxSize, boxSize));
});
或者
ImageElement image = imageMap[cell.image];
context.drawImageToRect(image, new Rect(x, y, boxSize, boxSize));