package GraphicExport { public class JSONPNGSetSaver { var name:String; var json:String; var pngs:Array; var sheetCount = 0; var doneCallback:Function = null; public function JSONPNGSetSaver(name:String, json:String, pngs:Array, callback:Function) { this.name = name; this.json = json; this.pngs = pngs; doneCallback = callback; } public function Save() { var fr:FileReference = new FileReference(); fr.save(jsonOutput, this.name+".json"); fr.addEventListener(Event.COMPLETE, OutputNextFile); } public function OutputNextFile(e:Event) { if (pngs.length > 0) { var pngSheet = pngs.shift(); sheetCount++; var fr:FileReference = new FileReference(); fr.save(pngSheet, this.name+"_"+(sheetCount < 10) ? "0" : "")+sheetCount+".png"); fr.addEventListener(Event.COMPLETE, OutputNextFile); } else { doneCallback(); } } } }