我想在JavaScript中更改“Ortsname”的颜色, 我正在使用:
var relieflackEbene = myDoc.layers.itemByName('Relieflack');
选择图层“Relieflack”但使用
时relieflackEbene.pageItems.firstItem().strokeColor = "Relieflack";
实际上我不想使用“firstItem()”,因为它可能不是该图层上的第一个项目。 但它正在改变文本框的颜色,而不是文本框中的文本颜色。
任何提示?
答案 0 :(得分:1)
以下代码应更改文本“Ortsname”的笔触颜色。
for (var i=0, len=relieflackEbene.pageItems.length; i < len ; i++) {
if (relieflackEbene.pageItems[i].parentStory.contents === "Ortsname") {
relieflackEbene.pageItems[i].parentStory.strokeColor = "Relieflack"
}
};
如果您想要更改图层中所有文本框架的文本,请尝试使用
relieflackEbene.pageItems.everyItem().texts.everyItem().strokeColor = "Relieflack";
答案 1 :(得分:0)
或者您可以使用changeText方法,除非它太宽:
var main = function() {
var doc = app.properties.activeDocument,
ftp = app.findTextPreferences.properties,
ctp = app.changeTextPreferences.properties,
color;
if ( !doc ) return;
color= doc.swatches.itemByName ( "Relieflack" );
if ( !color.isValid ) {
alert("Color \"Relieflack\" is required.");
return;
}
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.properties = {
findWhat:"Ortsname",
};
app.changeTextPreferences.properties = {
strokeColor:color,
};
doc.changeText();
app.findTextPreferences.properties = ftp;
app.changeTextPreferences.properties = ctp;
}
var u;
app.doScript ( "main()",u,u,UndoModes.ENTIRE_SCRIPT, "The Script" );
&#13;