В документации Flame класс Image просто загружается из папки активов.
bgSprite = Sprite('avatar/avatar-sample.png');
Как я могу загрузить сетевые изображения в Flame.
Какова цель доступа к сетевому образу в пламени? Разве это не игровой движок?
Что, если я хочу показать аватар пользователя в виде спрайта? Каждый спрайт не происходит из папки с ресурсами. В какой-то момент нам нужно получить изображение из сети.
Вы можете сделать что-то подобное в версиях после 1.0.0
:
import dart:ui; // This is the package you want the Image class from, there are several
Future<Image> getImage(String path) async {
Completer<ImageInfo> completer = Completer();
var img = new NetworkImage(path);
img.resolve(ImageConfiguration()).addListener(ImageStreamListener((ImageInfo info,bool _){
completer.complete(info);
}));
ImageInfo imageInfo = await completer.future;
return imageInfo.image;
}
а затем в вашем методе onLoad
просто запустите bgSprite:
@override
Future<void> onLoad() async {
final image = await getImage("your-url.com/sample.png");
bgSprite = Sprite(image);
}
В 0.28.0
, который, похоже, вы используете, вы просто замените последнюю строку на (но я действительно рекомендую обновиться до версии после 1.0.0
):
bgSprite = Sprite.fromImage(image);
Опубликуйте кусок своего кода