package com { import flash.events.Event; import flash.events.IOErrorEvent; import flash.filesystem.File; import flash.filesystem.FileMode; import flash.filesystem.FileStream; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.utils.ByteArray; public class CacheImage { private var loader:URLLoader = new URLLoader(); private var fileName:String; private var file:File; public var imageProperty:String; public function CacheImage(url:String, name:String, destination:File, defaultImage:String):void { loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, onLoad); imageProperty = defaultImage; fileName = name; file = destination; loader.load(new URLRequest(url)); } private function onLoad(event:Event):void { imageProperty = file.nativePath; saveLocally(fileName, loader.data); } private function saveLocally(fileName:String, data:ByteArray):void { //create a file under the application storage directory using the filename argument if (file.exists) { file.deleteFile(); } var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeBytes(data, 0, data.length); fileStream.close(); } } }