AE Scripting: как создать кнопку в ExtendScript, которая растягивается по ширине панели в реальном времени?

Поскольку мы не можем установить ширину в процентах в ExtendScript.

Я нахожу способ, при котором мою кнопку можно растягивать / изменять размер в реальном времени при изменении размера панели.

Я пробовал установить значение заливки -

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

Не сработало. Пытался сопоставить ширину кнопки с шириной панели

Button.preferredSize.width = panel.width;

Не сработало.

введите здесь описание изображения


person Mohd Faizan    schedule 31.01.2020    source источник


Ответы (1)


Просто установите выравнивание по горизонтали.

Вы также можете указать его размер / предпочтительный размер и изменить его высоту по умолчанию.

Кроме того, для изменения размера пользовательского интерфейса вам необходимо добавить прослушиватели событий 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];

person Alex Munteanu    schedule 02.02.2020