snipplrCallback({"id":61694,"title":"as3--cached-image-from-url","source":"
package components<\/div><\/li> {<\/span><\/div><\/li> \timport<\/span> com.adobe<\/span>.crypto<\/span>.MD5<\/span>;<\/div><\/li> <\/div><\/li> \timport<\/span> flash.events<\/span>.Event<\/span>;<\/div><\/li> \timport<\/span> flash.filesystem<\/span>.File<\/span>;<\/div><\/li> \timport<\/span> flash.filesystem<\/span>.FileMode<\/span>;<\/div><\/li> \timport<\/span> flash.filesystem<\/span>.FileStream<\/span>;<\/div><\/li> \timport<\/span> flash.net<\/span>.URLLoader<\/span>;<\/div><\/li> \timport<\/span> flash.net<\/span>.URLLoaderDataFormat<\/span>;<\/div><\/li> \timport<\/span> flash.net<\/span>.URLRequest<\/span>;<\/div><\/li> \timport<\/span> spark.components<\/span>.Image<\/span>;<\/div><\/li> <\/div><\/li> \tpublic<\/span> class<\/span> CachedImage extends<\/span> Image<\/div><\/li> \t{<\/span><\/div><\/li> <\/div><\/li> \t\tprivate<\/span> var<\/span> _imageIdentifier:String<\/span> = ""<\/span>;<\/div><\/li> \t\tprivate<\/span> var<\/span> urlLoader:URLLoader = new<\/span> URLLoader(<\/span>)<\/span>;<\/div><\/li> \t\tprivate<\/span> var<\/span> _fromCache:Boolean<\/span> = false<\/span>;<\/div><\/li> <\/div><\/li> \t\tpublic<\/span> function<\/span> CachedImage(<\/span>)<\/span><\/div><\/li> \t\t{<\/span><\/div><\/li> \t\t\tsuper<\/span>(<\/span>)<\/span>;<\/div><\/li> \t\t}<\/span><\/div><\/li> <\/div><\/li> \t\tpublic<\/span> function<\/span> get<\/span> fromCache(<\/span>)<\/span>:Boolean<\/span><\/div><\/li> \t\t{<\/span><\/div><\/li> \t\t\treturn<\/span> _fromCache;<\/div><\/li> \t\t}<\/span><\/div><\/li> <\/div><\/li> \t\tpublic<\/span> function<\/span> set<\/span> fromCache(<\/span>value:Boolean<\/span>)<\/span>:void<\/span><\/div><\/li> \t\t{<\/span><\/div><\/li> \t\t\t_fromCache = value;<\/div><\/li> \t\t}<\/span><\/div><\/li> <\/div><\/li> \t\tpublic<\/span> function<\/span> get<\/span> imageIdentifier(<\/span>)<\/span>:String<\/span><\/div><\/li> \t\t{<\/span><\/div><\/li> \t\t\treturn<\/span> _imageIdentifier;<\/div><\/li> \t\t}<\/span><\/div><\/li> <\/div><\/li> \t\tpublic<\/span> function<\/span> set<\/span> imageIdentifier(<\/span>value:String<\/span>)<\/span>:void<\/span><\/div><\/li> \t\t{<\/span><\/div><\/li> \t\t\t_imageIdentifier = value;<\/div><\/li> \t\t}<\/span><\/div><\/li> <\/div><\/li> \t\toverride public<\/span> function<\/span> get<\/span> source(<\/span>)<\/span>:Object<\/span><\/div><\/li> \t\t{<\/span><\/div><\/li> \t\t\treturn<\/span> super<\/span>.source<\/span>;<\/div><\/li> \t\t}<\/span><\/div><\/li> <\/div><\/li> \t\toverride public<\/span> function<\/span> set<\/span> source(<\/span>value:Object<\/span>)<\/span>:void<\/span><\/div><\/li> \t\t{<\/span><\/div><\/li> \t\t\tif<\/span>(<\/span>!<\/span>_fromCache)<\/span> {<\/span><\/div><\/li> \t\t\t\tif<\/span>(<\/span>value is Class<\/span>)<\/span>{<\/span><\/div><\/li> \t\t\t\t\t\/\/ do nothing<\/span><\/div><\/li> \t\t\t\t}<\/span> else<\/span> if<\/span>(<\/span>value is String<\/span> ||<\/span> value is Object<\/span>)<\/span>{<\/span><\/div><\/li> \t\t\t\t\t\/\/Load cached image<\/span><\/div><\/li> \t\t\t\t\t_imageIdentifier = MD5.hash<\/span>(<\/span>String<\/span>(<\/span>value)<\/span>)<\/span>;<\/div><\/li>