目前使用javascript为indesign CS6开发脚本。我正在寻找一种方法在对话框中为标签添加颜色ui,示例代码如下
var myDialog = app.dialogs.add({name:"User Interface Example Script", canCancel:true});
with(myDialog){
//Add a dialog column.
with(dialogColumns.add()){
//Create a border panel.
with(borderPanels.add()){
with(dialogColumns.add()){
//The following line shows how to set a property as you create an object.
staticTexts.add({staticLabel:"Message:"});
我想知道如何使标签消息成为自定义颜色。
**编辑
我找到了使用javascript API中其他类的部分解决方案但是我仍然想知道上述是否可行
var w = new Window("dialog");
var s = w.add ("statictext", undefined, "Static");
var e = w.add ("edittext", undefined, "Edit");
var b = w.add ("button", undefined, "Button");
// The window's backround
w.graphics.backgroundColor = w.graphics.newBrush (w.graphics.BrushType.SOLID_COLOR, [0.5, 0.0, 0.0]);
// Font and its colour for the first item, statictext
s.graphics.font = ScriptUI.newFont ("Helvetica", "Bold", 30);
s.graphics.foregroundColor = s.graphics.newPen (w.graphics.PenType.SOLID_COLOR, [0.7, 0.7, 0.7], 1);
// Font and colours for the second item, edittext
e.graphics.font = ScriptUI.newFont ("Letter Gothic Std", "Bold", 30);
e.graphics.foregroundColor = e.graphics.newPen (e.graphics.PenType.SOLID_COLOR, [1, 0, 0], 1);
e.graphics.backgroundColor = e.graphics.newBrush (e.graphics.BrushType.SOLID_COLOR, [0.5, 0.5, 0.5]);
// Font for the tird control, a button. Can't set colours in buttons
b.graphics.font = ScriptUI.newFont ("Minion Pro", "Italic", 30);
w.show ();
答案 0 :(得分:1)
如果查看API,静态文本有两个单独的类(StaticText (SUI)
和StaticText
)。看起来第一个类StaticText (SUI)提供了为静态文本着色的功能,而第二个StaticText则没有。
在您的问题中,您显示的第一个代码段是使用StaticText
类,因此无法使用图形选项(颜色)。第二个代码示例正在使用StaticText (SUI)
类,这就是您可以为其着色的原因。
我找到了一个很好的概述,您可能会对UI API here之间的差异感兴趣。
因此,要回答您的问题,为了向对话框添加颜色,您必须使用窗口和Scripting UI类(SUI)创建自己的对话框,而不是使用“内置”对话框类。