编辑:我也愿意就我可以做什么提出其他建议。

如何使用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.updatecase(带有文档,仍然不确定.update实际做什么)。但我无法弄清楚。

w.DD.onChange = function() {
    switch (this.selection.text){
        case 'Headline':
                w.add('checkbox', undefined, 'User-Color');
                //w.show();
                w.update();
            break;
    }
}


有谁知道这可能如何工作?

最佳答案

我通常会避免使用LayoutManager并自己做所有我更信任的数学运算,但这是我的拙见...



var w = new Window("dialog");
w.preferredSize = [200,200];
w.DD = w.add( 'dropdownlist', undefined, ["A","B"] );
w.DD.selection = 0;
w.DD.alignment = ["fill","top"];

//Setting a stacked group to items overlay
w.gp = w.add('group');
w.gp.orientation = 'stack';
w.gp.alignment = ["fill","top"];
w.gp.alignChildren = ["fill","top"];
w.gp.p1 = w.gp.add('panel',undefined, "A");
w.gp.p2 = w.gp.add('panel',undefined, "B");

//dummy text to show "collapsing"
w.st = w.add('statictext',undefined, "Collapse ?");

w.DD.onChange = function() {
    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.st.location.y = w.gp.location.y+w.gp.size.height+10;
}

w.onShow = function() {
    w.gp.p2.visible=false;
    w.gp.size.height = w.gp.p1.size.height = 50;
    w.st.location.y = w.gp.location.y+w.gp.size.height+10;
}

w.show();





javascript - Indesign脚本更新窗口?-LMLPHP

javascript - Indesign脚本更新窗口?-LMLPHP

洛伊奇

10-06 04:19