Ok, so here is a possible approach: #targetengine "session"
var palette = palette || getPalette();
var cancel = false;
palette.show();
var tasks = {};
function exportDoc(w){
var doc = app.documents[0];
if(!doc.isValid) return;
var d = (new Date()).getTime().toString();
var n = 15;
while(n--){
w.t.text = d;
doc.textFrames[0].contents = cancel+":"+d;
var t = doc.asynchronousExportFile(ExportFormat.PDF_TYPE, File(Folder.desktop+"/pdfs/"+n+"_tutu_"+d+".pdf"), false);
tasks[t.id] = t;
}
}
function getPalette(){
var u;
var w = new Window("palette","Testing canceling");
w.size = [200,500];
var exportBtn = w.add("button", u, "Export");
var cancelBtn = w.add("button",u,"Cancel");
var resetBtn = w.add("button",u,"Reset");
exportBtn.onClick = function(){
exportDoc(w);
}
resetBtn.onClick = function(){
cancel=false;
}
cancelBtn.onClick = function(){
cancel=true;
for(prop in tasks){
tasks[prop].cancelTask();
delete tasks[prop];
}
}
w.t = w.add("statictext",u,"…");
w.t.alignment = "fill";
return w;
}
... View more