package com.sibhod.core { import flash.display.BitmapData; import flash.utils.Dictionary; public class ImageCache { public static function isCached( key:String ):Boolean { return Boolean( instance._cache[key]); } public static function store( key:String, bitmapData:BitmapData ):void { instance._cache[key] = bitmapData; } public static function retrieve( key:String, forgetOnRetrieve:Boolean = false):BitmapData { var data:BitmapData = instance._cache[key]; if(forgetOnRetrieve) forget(key); return data; } public static function forget(key:String):void { instance._cache[key] = null; } public static function dispose( key:String ):Boolean { if ( !isCached( key )) return false; retrieve( key ).dispose(); instance._cache[key] = null; return true; } public function ImageCache( enforcer:SingletonEnforcer ) { _instance = this; _cache = new Dictionary(); } private static function get instance():ImageCache { if ( _instance == null ) _instance = new ImageCache( new SingletonEnforcer()); return _instance; } private static var _instance:ImageCache; private var _cache:Dictionary; } } internal class SingletonEnforcer { }