Hallo Mike,
ja, wenn ich das Script mit InDesign CS entwickelt hätte, dann wäre die Chance grösser, dass
es unverändert mit CS2 funktionieren würde. Denn die Umwege, welche mit CS notwendig sind,
klappen auch. Umgekehrt, muss man einiges ändern.
Anstelle von ...
---
make rectangle at beginning with properties ¬
{geometric bounds:{ty1, x1, (ty1 + boxH), (x1 + boxW)} ¬
, fill color:fillColor, fill tint:boxSh, label:"blackBox"}
---
... muss man zuerst einen Rahmen erzeugen und dann dessen Properties ändern:
---
set newFrame to make rectangle
set properties of newFrame to {geometric bounds:{ty1, x1, (ty1 + boxH), (x1 + boxW)} ¬
, fill color:fillColor, fill tint:boxSh, stroke color:noColor, label:"blackBox"}
---
Das 'at beginning' kann man in beiden Versionen weglassen. Aber die Farbe der Kontur muss
auf "Keine" gesetzt werden, sonst kann eine Konturvorgabe wirksam werden. Der Variablen 'noColor'
wird vorgängig die Referenz der Farbe "Keine" zugewiesen:
---
set noneID to (id of every swatch whose name is "None")
set noColor to swatch id noneID
---
Damit die Farben sichtbar zugewiesen werden, muss mit InDesign CS eine Referenz zum entsprechenden
'swatch' definiert sein (das direkte Zuweisen gelingt nur mit CS2):
---
if colorName is "Schwarz" then
set fillColor to swatch "Black" of document 1
else if colorName is "Papier" then
set fillColor to swatch "Paper" of document 1
else
set fillColor to swatch colorName of document 1
end if
---
Wie vorstehend gezeigt, müssen der Name und die Referenz zwei verschiedenen Variablen zugewiesen
sein. Sonst wird beim Test, welcher feststellt, ob die gespeicherte Farbe im Dokument existiert,
immer die Default-Farbe "Schwarz" zugewiesen und erscheint anstelle der erwarteten im Dialog.
Ich stelle Dir die geänderte Version für InDesign CS zu.
Auf Deine Fragen des letzen Eintrags werde ich später eingehen.
Gruss, Hans
als Antwort auf: [#420937]