In meinem Skript für Photoshop CC 2015 (Windows 10), in JavaScript geschrieben, verarbeite ich alle Ebenen des aktiven Dokuments in einem Schleife und möchte in jedem Schritt ein Setup-Dialogfeld anzeigen.Photoshop ScriptUI: Zeige ein Dialogfenster, schließe es, zeige es wieder an gibt ein leeres Vollbildfenster
Nehmen Sie zur Vereinfachung das folgende Arbeitsbeispiel. Das Fenster ist außerhalb der Schleife definiert, und unter anderen Schritten, die hier ausgezogen sind, wird das Fenster einmal jeden Schritt in der Schleife gezeigt: mit nur einem „OK“
#target photoshop
var w = new Window('dialog', 'Title');
var b = w.add('button', undefined, 'OK');
for (var i = 0; i < 3; i++) {
// other code
w.show();
// other code
}
Wenn Sie führen Sie es aus, ein kleines Dialogfenster Die Schaltfläche erscheint wie erwartet. Sie können es mit der Schaltfläche "OK" schließen. Aber jede fortlaufende w.show()
erzeugt ein leeres Fenster, das fast den gesamten Bildschirm füllt, ohne irgendwelche Kontrollen. Es kann nur mit der ESC-Taste geschlossen werden.
Ich habe versucht, die b.onClick
Ereignis überschreiben und manuell close()
aufrufen, aber das hat nichts geändert.
Bei näherer Betrachtung des w
Variable, ist es offensichtlich, dass die bounds
bzw. location
und size
irgendwie verändert wurden. Ich habe versucht, diese Werte auf ihren vorherigen Zustand zurückzusetzen, und die Fenstergröße wird wiederhergestellt. Der Button ist jedoch immer noch nicht sichtbar.
Fehle ich etwas? Wie kann ich das Dialogfenster mehr als einmal richtig angezeigt bekommen?
Vielen Dank! Es klappt! Ich wusste nicht, dass 'close()' das Fenster zerstört. – Flo
Tatsächlich habe ich in den offiziellen Handbüchern oder anderen Quellen keinen Hinweis darauf gefunden. Dies sollte hinzugefügt werden ... – Flo