package core;
import js.Lib;
import js.html.ImageElement;
import js.html.Event;
import js.html.Document;
import js.Browser;
typedef Hash = haxe.ds.StringMap;
class ImageLoader
{
public var images: Hash;
private var loaded: Void -> Void;
private var count: Int;
public function new( imageNames: Array, loaded_: Void -> Void )
{
images = new Hash();
loaded = loaded_;
count = imageNames.length;
for( name in imageNames ) load( name );
}
private function load( img: String )
{
var image: ImageElement = js.Browser.document.createImageElement();
var imgStyle = image.style;
imgStyle.left = '0px';
imgStyle.top = '0px';
imgStyle.paddingLeft = "0px";
imgStyle.paddingTop = "0px";
image.onload = store.bind( image, img.split('/').pop() );
imgStyle.position = "absolute";
image.src = img;
}
private function store( image: ImageElement, name: String, e: Event )
{
count--;
trace( 'store ' + name + ' ' + count );
images.set( name, image );
if( count == 0 )
{
loaded();
}
}
}