Script from spin package doesn't save sublayers.
following script solve this problem
it creates folder structure the same as layer structure in AI and save visible layers to png files
var options = new ExportOptionsPNG24();
var doc = app.activeDocument;
var newdoc = app.documents.add(doc.documentColorSpace, doc.width, doc.height);
newdoc.artboards[0].artboardRect = doc.artboards[0].artboardRect;
saveSubLayers(doc, "");
newdoc.close(SaveOptions.DONOTSAVECHANGES);
function saveSubLayers(node, path){
for (var i=0; i<node.layers.length; i++){
var layer = node.layers[i];
if (!layer.visible)
continue;
if (layer.layers.length > 0){
saveSubLayers(layer, path+"/"+layer.name);
} else {
saveLayer(layer, path);
}
}
}
function saveLayer(layer, path){
newdoc.layers[0].remove();
var newlayer = newdoc.layers[0];
for (var ii = layer.pageItems.length - 1; ii >= 0; ii
---
)
layer.pageItems[ii].duplicate(newlayer, ElementPlacement.PLACEATBEGINNING);
new Folder(doc.path + path).create();
newdoc.exportFile(new File(doc.path + path + "/" + layer.name + ".png"), ExportType.PNG24, options);
}