Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: sky/sdk/example/game/lib/image_map.dart

Issue 1227373004: Make Sky example game run offline (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
1 part of sprites; 5 part of sprites;
2 6
3 typedef void ImageMapCallback(ImageMap preloader); 7 class ImageMap {
8 ImageMap(AssetBundle bundle) : _bundle = bundle;
4 9
5 class ImageMap { 10 final AssetBundle _bundle;
11 final Map<String, Image> _images = new Map<String, Image>();
6 12
7 Map<String, Image> _images; 13 Future<List<Image>> load(List<String> urls) {
8 14 return Future.wait(urls.map(_loadImage));
9 int _totalNumImages = 0;
10 int _numLoadedImages = 0;
11
12 ImageMapCallback _callback;
13
14 ImageMap(List<String> urls, ImageMapCallback this._callback) {
15 _images = new Map();
16 _totalNumImages = urls.length;
17 urls.forEach(_addURL);
18 } 15 }
19 16
20 void _addURL(String url) { 17 Future<Image> _loadImage(String url) async {
21 image_cache.load(url).then((Image image) { 18 Image image = await _bundle.loadImage(url);
22 // Store reference to image 19 _images[url] = image;
23 _images[url] = image; 20 return image;
24
25 // Check if all images are loaded
26 _numLoadedImages++;
27 if (_numLoadedImages==_totalNumImages) {
28 // Everything loaded, make callback
29 _callback(this);
30 }
31 });
32 } 21 }
33 22
34 Image getImage(String url) => _images[url]; 23 Image getImage(String url) => _images[url];
35
36 Image operator [](String url) => _images[url]; 24 Image operator [](String url) => _images[url];
37 } 25 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698