Question

J'essaie de créer un script qui, dans le processus d'ouverture d'un fichier de modèle, demande à l'utilisateur un ensemble de valeurs CMJN.

L'idée est de modifier ensuite la valeur d'une couleur existante (appelée "couleur primaire") modifiant donc la couleur de chaque élément à laquelle elle est appliquée ... ou ajoutez cette nouvelle couleur et supprimez "la couleur primaire" remplaçantavec une nouvelle couleur.

Le problème est que je ne peux pas passer au-delà de créer une nouvelle couleur avec des valeurs d'entrée utilisateur.Je peux créer une nouvelle couleur avec;

 set New_Swatch to make color with properties {name:"New Primary Colour", model:process, color value:{82,72,49,46}}

Cependant, dès que j'essaie de remplacer la valeur de couleur avec une variable, j'obtiens l'erreur;

"Adobe InDesign CS5 a eu une erreur: paramètre non valide."

Voici un extrait de code dans le contexte;

set primaryColour to text returned of (display dialog "Enter CMYK calues of Primary Colour (separated by commas e.g. 0,0,0,0)" default answer "") as string

tell application "Adobe InDesign CS5"
 activate
 tell active document
    set New_Swatch to make color with properties {name:"new", model:process, color value:primaryColour}
  end tell
end tell

Toute aide reçue avec gratitude.

Était-ce utile?

La solution

Je l'utilise actuellement:

set primaryColor to text returned of (display dialog "Enter CMYK values of Primary Colour (separated by commas e.g. 0,0,0,0)" default answer "") as string
set text item delimiters to ","
set colorvalue to {}
repeat with color from 1 to count of text items of primaryColor
   copy (text item colour of primaryColor as number) to end of colorvalue
end repeat
  set colorname to "TEST"
tell application "Adobe InDesign CS5"
   activate
   tell active document
    set newcolor to make color with properties {name:colorname, space:CMYK, model:process, color value:colorvalue}
   end tell
end tell

Pourquoi?Parce que ça marche.Ce n'est pas joli et ce n'était pas ma première, ni même la 10ème méthode pour faire le travail ... pourquoi cela fonctionne?Aucune idée ...

ça fait juste.Vous penseriez que:

  set text item delimiters to ","
  set {C,M,Y,K} to text items of primaryColor

...

  set newcolor to make color with properties {name:colorname, space:CMYK, model:process, color value:{C,M,Y,K}}

ferait l'affaire, mais ça ne veut pas ... Je suis sûr que vos tentatives jusqu'à présent ont été prouvées à quel point la douleur est de la douleur.

Autres conseils

Vous pouvez également utiliser la commande AppleScript "Choisir la couleur", qui présente un sélecteur de couleur plutôt que de présenter votre utilisateur avec une boîte de dialogue dans laquelle ils doivent entrer des valeurs de couleur numériques.

Cet exemple insère les couleurs RVB comme texte dans une fenêtre Becbedit, mais vous utiliseriez le même principe pour insérer des couleurs CMYK comme texte dans InDesign.

tell application "BBEdit"
    activate
    set theColorValues to choose color
    set theR to round (the first item of theColorValues) / 257
    set theG to round (the second item of theColorValues) / 257
    set theB to round (the third item of theColorValues) / 257
    set theRGBColor to "rgb(" & theR & ", " & theG & ", " & theB & ")"
    set selection to theRGBColor
end tell

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top