【问题标题】:AE Scripting : How to create a button in ExtendScript that stretches along with the width of panel in real time?AE Scripting:如何在ExtendScript 中创建一个随面板宽度实时延伸的按钮?
【发布时间】:2020-01-31 19:05:58
【问题描述】:

由于我们无法在 ExtendScript 中以百分比设置宽度。

我正在寻找一种方法,让我的按钮可以在调整面板大小的同时实时拉伸/调整大小。

我尝试设置填充值 -

Button.preferredSize.width = 200;
Button.preferredSize.height = 80;
saveButton.alignment = ['fill', 'fill'];

没用。尝试将按钮宽度与面板宽度匹配

Button.preferredSize.width = panel.width;

没用。

【问题讨论】:

    标签: javascript after-effects


    【解决方案1】:

    只需将其对齐设置为水平填充。

    您也可以指定它的大小/preferredSize 并更改它的默认高度。

    此外,为了调整 UI 大小,您需要添加“onResizing/onResize”事件侦听器并使用 resize() 告诉布局调整大小。

    这是一个例子:

    function myPanel (thisObj)
    {
      var win = {};
    
      win.pal = thisObj instanceof Panel ? thisObj : new Window('palette', '', undefined, {resizeable: true});
    
      if (win.pal === null) return win.pal;
    
      var res = "Group {orientation: 'column', alignment: ['fill', 'fill'], preferredSize: [128, 64], \
        myButton: Button {text: 'My Button Name', alignment: ['fill', 'center']}\
      }";
    
      win.ui = win.pal.add(res);
      win.ui.myButton.minimumSize = [128, 32];
    
      win.pal.layout.layout(true);
    
      win.pal.onResizing = win.pal.onResize = function ()
      {
        this.layout.resize();
      };
    
      if (win.pal !== null && win.pal instanceof Window)
      {
        win.pal.show();
      }
    
      return win;
    }
    
    myPanel(this);
    

    编辑:您也可以通过获取按钮的容器大小来设置按钮的宽度百分比。例如:win.ui.myButton.size = [ 0.9 * win.ui.size[0], 32];

    【讨论】:

      猜你喜欢
      • 2022-01-16
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      相关资源
      最近更新 更多