0

Когда я запустил этот код в ExtendScript Toolkit (Target app - After Effects CC 2015), кнопка отмены не отвечает, пока индикатор выполнения не закончит.Как заставить пользовательский интерфейс After Effects реагировать сразу во время обработки скрипта

Я хотел был бы заставить его работать так, чтобы кнопка отмены ответила сразу.

Я знаю, что нажатие клавиши «Esc» работает немедленно, поэтому следует также активировать кнопку отмены.

testWindow = new Window ("palette", "Processing:", undefined); 
pb = testWindow.add("progressBar",undefined, 0); 
cancelButton = testWindow.add("button", undefined, "Cancel"); 

testWindow.show(); 

cancelButton.onClick = function(){ 
    alert("Cancel"); 
    } 

i = 1; 

while (i <= 1000000) { 
    pb.value = Math.round(100*i/1000000); 
    testWindow.update(); 
    i++ 
} 
+0

Похоже, вам нужны обещания в расширении AE. Я не знаю, если это что-то или есть библиотека. Но волшебные слова, которые вы ищете, - это «Javascript Promise» –

ответ

0

Я думаю, что это всегда было так: во время работы скрипта пользовательский интерфейс находится на удержании и не отвечает. Добавление кнопки «Отмена» не может работать.

Единственный способ, которым я знаю, что пользователь может отменить выполнение скрипта, - это клавиша ESC.