Hallo,
ich musste soeben feststellen, dass ein progressbar innerhalb eines Startup Scripts auf MAC (InDesign CS3/4/5 OS X 10.4.x + 10.6.x) nicht aktualisiert wird.
Wird dasselbe Script nicht als Startup Script sondern aus ESTK oder über das Skripte-Bedienfeld ausgeführt, wird der progressbar aktualisiert.
Auf PC erfolgt die Aktualisierung des progressbar auch innerhalb eines Startup Scripts.
//progressbar-test
//#target InDesign-7.0
#targetengine progressbar-test
function createProgressPanel(pbarMax, pbarWidth){
panel = new Window('window', 'Progressbar-Test');
//panel = new Window('palette', 'Progressbar-Test');
with(panel){
panel.prgBar = add('progressbar', [12, 12, pbarWidth, 24], 0, pbarMax);
panel.prgBar.preferredSize = [20, 200];
}
return panel;
}
function main(){
var doc = app.documents.add();
app.scriptPreferences.enableRedraw = true;
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;
var curPanel = createProgressPanel(200, 400);
curPanel.show();
for (var i = 0; i < 100; i++){
// do something
doc.pages.add();
curPanel.prgBar.value = i;
$.sleep (30);
}
curPanel.prgBar.value = 0;
curPanel.hide();
}
main ();
Hat jemand eine Idee, warum der progressbar auf einem MAC nicht aktualisiert wird?
Ich habe beim Fenstertyp bereits "window", "palette", "dialog" ausprobiert. Immer mit dem selben Ergebnis: Keine Aktualisierung auf MAC.
Eine Aktualisierung des progressbar in einem Startup Script auf MAC kann ich nur erzwingen, wenn ich vor/nach der Änderung des aktuellen Fortschrittwertes nochmals ein show()/hide() verwende. Das ergibt dann aber ein "zappelndes" Fenster [:(]