Hallo Quarz,
der Befehl "myCharStyle.fillColor = mySwatch;" war schon richtig.
Er muß nur an der richtigen Stelle (den richtigen Stellen) stehen.
In dem Code unten steht er jeweils nach der Prüfung, ob das Zeichenformat bereits vorhanden ist. Unabhängig davon, ob es schon vorhanden ist oder erst noch erstellt werden muß, wird ihm dann die weiter oben definierte Farbe "Red" zugewiesen.
// CharStyle_1.js
//
myStyles = ["Bold Italic","Italic","Bold"];
myPosns = ["superscript","subscript"];
myPosnEnums = [Position.superscript,Position.subscript];
myDoc = app.documents[0];
noCharStyle = app.activeDocument.characterStyles[0];
//
// color
try{
mySwatch = myDoc.colors.add({name:"Red",space:ColorSpace.rgb,colorValue:Array(250,0,0)});
}
catch (myError){
mySwatch = myDoc.colors.item("Red");
}
//
// fontStyles
for (var j = 0; j try {
myCharStyle = myDoc.characterStyles.item(myStyles[j]); myCharStyle.name;
}
catch (e) {
myDoc.characterStyles.add({name:myStyles[j], fontStyle:myStyles[j]}) ;
myCharStyle = myDoc.characterStyles.item(myStyles[j]);
}
myCharStyle.fillColor = mySwatch;
app.findPreferences = null;
app.changePreferences = null;
myDoc.search("",false,false,undefined,{appliedCharacterStyle:noCharStyle,fontStyle:myStyles[j]},{appliedCharacterStyle:myStyles[j]});
}
//
// position
for (var j = 0; j try {
myCharStyle = myDoc.characterStyles.item(myPosns[j]); myCharStyle.name;
}
catch (e) {
myDoc.characterStyles.add({name:myPosns[j], position:myPosnEnums [j]}) ;
myCharStyle = myDoc.characterStyles.item(myPosns[j]);
}
myCharStyle.fillColor = mySwatch;
app.findPreferences = null;
app.changePreferences = null;
myDoc.search("",false,false,undefined,{appliedCharacterStyle:noCharStyle,position:myPosnEnums[j]},{appliedCharacterStyle:myPosns[j]});
}
Willst Du die Farbe nur bei der neuen Erstellung des Zeichenformats zuweisen, dann laß die beiden Zeilen mit "myCharStyle.fillColor = mySwatch;" weg und füge dem add()-Befehl noch das Attribut "fillColor:mySwatch" hinzu.
Also wird z.B. aus "myDoc.characterStyles.add({name:myStyles[j], fontStyle:myStyles[j]}) ;"
myDoc.characterStyles.add({name:myStyles[j], fontStyle:myStyles[j], fillColor:mySwatch}) ;
Das ganze Skript lautet dann:
// CharStyle_2.js
//
myStyles = ["Bold Italic","Italic","Bold"];
myPosns = ["superscript","subscript"];
myPosnEnums = [Position.superscript,Position.subscript];
myDoc = app.documents[0];
noCharStyle = app.activeDocument.characterStyles[0];
//
// color
try{
mySwatch = myDoc.colors.add({name:"Red",space:ColorSpace.rgb,colorValue:Array(250,0,0)});
}
catch (myError){
mySwatch = myDoc.colors.item("Red");
}
//
// fontStyles
for (var j = 0; j try {
myCharStyle = myDoc.characterStyles.item(myStyles[j]); myCharStyle.name;
}
catch (e) {
myDoc.characterStyles.add({name:myStyles[j], fontStyle:myStyles[j], fillColor:mySwatch}) ;
myCharStyle = myDoc.characterStyles.item(myStyles[j]);
}
app.findPreferences = null;
app.changePreferences = null;
myDoc.search("",false,false,undefined,{appliedCharacterStyle:noCharStyle,fontStyle:myStyles[j]},{appliedCharacterStyle:myStyles[j]});
}
//
// position
for (var j = 0; j try {
myCharStyle = myDoc.characterStyles.item(myPosns[j]); myCharStyle.name;
}
catch (e) {
myDoc.characterStyles.add({name:myPosns[j], position:myPosnEnums [j], fillColor:mySwatch}) ;
myCharStyle = myDoc.characterStyles.item(myPosns[j]);
}
app.findPreferences = null;
app.changePreferences = null;
myDoc.search("",false,false,undefined,{appliedCharacterStyle:noCharStyle,position:myPosnEnums[j]},{appliedCharacterStyle:myPosns[j]});
}