Ich würde gerne einen Dialog erstellen in dem der User die UIColors auswählen kann. Das Problem ist, das der Dialog eine stringList erwartet, meine UIColors aber lieber eine Number sein wollen.
Daher geht folgendes nicht:
Ich dachte man könnte viell. die Number in einen String umwandeln aber ein Test mit
ergibt immer noch Number?
> Wie muss ich das Script schreiben damit der User Teal, Orange, Red auswählen kann, intern aber mit den Angaben in myColors weitergearbeitet werden kann?
Der Ansatz ist genau richtig. Einige Details gefallen mir nicht.
Gewöhn dir besser nicht an, Variablen ohn "var" einzuführen. Wenn du zwei parallele Listen verwendet, deklariere sie am besten auch nebeneinander, damit klar ist, was da zusammenhängt.
Falls du keine Lust hast zu tippen, hier die volle Liste:
Edit 8.11.14: Hans Haesler macht mich grad drauf aufmerksam, dass in meinem Codeschnipsel aus ungeklärtem Grund zwei Farben fehlen, nämlich Gelb und Cyan. Das habe ich korrigiert.
Ergänzend hier auch noch der Code-Schnipsel, mit dem man sich die Liste selbst erstellen kann, ohne den Kram abzutippen. Die For-In Schleife kennt vielleicht auch noch nicht jeder...?
(Dieser Beitrag wurde von Gerald Singelmann am 8. Nov 2014, 18:21 geändert)
Danke für´s drübersehen und kommentieren. Das mit den Listen leuchtet mir ein.
Ohne jetzt hier eine Grundsatzdiskussion führen zu wollen: Peter Kahrel hat mir erklärt das das Einführen von Variablen außerhalb von Funktionen mit "var" nicht notwendig ist.
Da ich noch an meinem Schreibstil feile, lasse ich seit zwei Wochen das "var" außerhalb von Funktionen sowie generell Sachen wie "myDoc", "myLayer" weg.
"myResult" habe ich verwendet weil dieses Beispiel mein erster Dialog war und es mir so doch klarer wurde.
edit: Hans hatte mir den Wink mit den zwei Listen schon vor längerer Zeit gegeben. Irgendwie hatte ich es aber auf diesem Weg bis gestern nicht hinbekommen und doch noch auf eine Lösung in einer Liste gehoffft.
Gruß Kai Rübsamen
(Dieser Beitrag wurde von Kai Rübsamen am 16. Okt 2009, 08:06 geändert)
Nö, dazu sind wir auch alle nicht Informatiker genug.
Mir passier es nur sehr häufig, wenn ich eine Skizze erst mal global geschrieben habe, dass ich den Code nachträglich in eine Funktion schiebe. Außerdem hilft es bei der Lesbarkeit, wenn ich weiß, wo eine Variable eingeführt wurde.
The advantage of using const is that constants cannot be redefined, protecting the contents of the defined constants.
As to the readability of variable names, if you want to distinguish them from InDesign's properties and methods, then why use the same naming convention of space-less title case with initial lower case (as in dialogNames)? I would make sure that my variables are easily recognisable as my own. For example, for variable and function names I've been using dialog_names: underscores for spaces, no capitals. No confusion.
Well, I had assumed that those two arrays weren't going to change. If they are going to change, then you're quite right, they should indeed not be declared as constants.
Ah -- I see what you mean now. Of course. The advantage of using const is still that (in this case) the names of the arrays cannot be accidentally used for something else. But you're right that const doesn't lock the contents of array constants in the way that it does string and number constants.