Javascript Indesign脚本更新窗口?
编辑:我也愿意接受关于我能做什么的其他建议 如何使用Javascript Indesign脚本更新窗口?,javascript,adobe-indesign,Javascript,Adobe Indesign,编辑:我也愿意接受关于我能做什么的其他建议 如何使用onChange事件更新窗口?我的解决方案是可行的,但我需要在不可见时将组折叠起来 w.DD.onChange = function() { switch (this.selection.text){ case 'Headline': if(w.visiblegroup) w.visiblegroup.visible = false;
onChange
事件更新窗口?我的解决方案是可行的,但我需要在不可见时将组折叠起来
w.DD.onChange = function() {
switch (this.selection.text){
case 'Headline':
if(w.visiblegroup)
w.visiblegroup.visible = false;
w.visiblegroup = w.texted;
w.texted.visible = true;
break;
}
}
在案例
本身中添加元素后,我尝试使用w.show
,w.update
(带有文档,仍然不确定.update实际上做了什么)。但我想不出来
w.DD.onChange = function() {
switch (this.selection.text){
case 'Headline':
w.add('checkbox', undefined, 'User-Color');
//w.show();
w.update();
break;
}
}
有人知道这是如何工作的吗?要折叠组和窗口,需要使用窗口的
layout()
方法。这将加载控制窗口或容器的自动布局行为的LayoutManager
。LayoutManager
也有一个名为layout()
的方法,该方法调用自动布局行为,并在第一次显示窗口时自动调用。此后,脚本必须显式地调用它,如下所示:
window.layout().layout();
Gerald Singelmann关于如何使用布局管理器的示例:
function main() {
var win = new Window("dialog");
var maingroup = win.add("panel");
maingroup.orientation = "column";
add_group( maingroup );
var show_btn = win.add("button", undefined, "show");
show_btn.onClick = function() {
var txt = "";
for (var n = 0; n < maingroup.children.length; n++) {
txt += maingroup.children[n].edit.text + "\n";
}
alert("Da steht: \n" + txt );
}
win.show();
function add_group( maingroup ) {
var group = maingroup.add( "group" );
group.edit = group.add("edittext", [undefined, undefined, 200, 20], maingroup.children.length );
group.plus = group.add("button", undefined, "+");
group.plus.onClick = add_btn;
group.minus = group.add("button", undefined, "-");
group.minus.onClick = minus_btn;
group.index = maingroup.children.length - 1;
win.layout.layout( true );
return group;
}
function add_btn ( e ) {
add_group( maingroup );
}
function minus_btn ( e ) {
var ix = this.parent.index;
maingroup.remove( maingroup.children[ix] );
win.layout.layout( true );
}
}
函数main(){
var win=新窗口(“对话框”);
var maingroup=win.add(“面板”);
maingroup.orientation=“column”;
添加_组(主组);
var show_btn=win.add(“按钮”,未定义,“显示”);
show_btn.onClick=function(){
var txt=“”;
对于(var n=0;n
我通常避免使用LayoutManager,而是自己做所有我更信任的数学,但这是我的拙见
var w=新窗口(“对话框”);
w、 preferredSize=[200200];
w、 DD=w.add('dropdownlist',未定义,[“A”,“B”]);
w、 DD.selection=0;
w、 DD.alignment=[“填充”、“顶部”];
//将堆叠组设置为项目覆盖
w、 gp=w.add(‘组’);
w、 gp.orientation='stack';
w、 gp.alignment=[“填充”、“顶部”];
w、 gp.alignChildren=[“填充”,“顶部”];
w、 gp.p1=w.gp.add(‘面板’,未定义为“A”);
w、 gp.p2=w.gp.add(‘面板’,未定义为“B”);
//显示“正在折叠”的虚拟文本
w、 st=w.add('statictext',未定义,“Collapse?”);
w、 DD.onChange=函数(){
w、 gp.p1.visible=w.DD.selection==0;
w、 gp.p2.visible=!w.gp.p1.visible;
w、 gp.p2.size.height=100;
w、 gp.size.height=w.gp.p1.visible?50:100;
w、 标准位置y=总成位置y+总成尺寸高度+10;
}
w、 onShow=函数(){
w、 gp.p2.可见=假;
w、 gp.size.height=w.gp.p1.size.height=50;
w、 标准位置y=总成位置y+总成尺寸高度+10;
}
w、 show()代码>关于indesign脚本,没有html。很抱歉,没有看到标记