mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
37 lines
797 B
Dart
37 lines
797 B
Dart
part of sprites;
|
|
|
|
typedef void ImageMapCallback(ImageMap preloader);
|
|
|
|
class ImageMap {
|
|
|
|
Map<String, Image> _images;
|
|
|
|
int _totalNumImages = 0;
|
|
int _numLoadedImages = 0;
|
|
|
|
ImageMapCallback _callback;
|
|
|
|
ImageMap(List<String> urls, ImageMapCallback this._callback) {
|
|
_images = new Map();
|
|
_totalNumImages = urls.length;
|
|
urls.forEach(_addURL);
|
|
}
|
|
|
|
void _addURL(String url) {
|
|
image_cache.load(url, (Image image) {
|
|
// Store reference to image
|
|
_images[url] = image;
|
|
|
|
// Check if all images are loaded
|
|
_numLoadedImages++;
|
|
if (_numLoadedImages==_totalNumImages) {
|
|
// Everything loaded, make callback
|
|
_callback(this);
|
|
}
|
|
});
|
|
}
|
|
|
|
Image getImage(String url) => _images[url];
|
|
|
|
Image operator [](String url) => _images[url];
|
|
} |