Home » Скриптинг

Быстрое тестирование небольшого кода

15 Июль 2009 No Comment

Иногда требуется проверить работу небольшого кусочка кода без запуска всего скрипта, например, чтобы проверить некоторые объектные свойства или протестировать какой-то промежуточный результат. Конечно, это можно сделать в среде разработки ExtendScript Toolkit, но еще быстрее это может получиться при использовании стандартного интерфейса Индизайна CS4 – панели Script Label (Window > Automation > Script Label), которую мы будем использовать как контейнер для проверяемого кода.

Следует помнить, что информация, заносимая в панель Script Label, привязана к определенному элементу страницы – текстовому фрейму, прямоугольнику, полигону и т.п. и заносится туда, когда этот элемент страницы выделен.

Для тестирования будем использовать специальный скрипт, который при помощи метода doScript будет запускать на выполнение  программный код, находящийся в панели Script Label.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Application.prototype.main = function()
//--------------------------------------
// Run as script the label (string) of the selected object
// !! If you change the label, you need to unfocus
// !! the "Script Label" panel to update the value
{
try
    {
    if ( this.selection.length < = 0 )
        {
        throw new Error("No selection!");
        }
    var snippet = this.selection[0].label;
    this.doScript(snippet, ScriptLanguage.javascript,
        undefined, UndoModes.entireScript, "RunLabel");
    }
catch(ex)
    {
    alert(ex);
    }
}
app.main();

Этот скрипт будет посылать на обработку JS-интерпретатору любой код, который вы запишите в панели Script Label (при выделенном каком-либо элементе страницы). Параметр UndoModes.entireScript позволит вам легко отменять все изменения, произведенные тестируемым кусочком кода. Сохраните этот скрипт с именем RunLabel.jsx в папку с вашими скриптами, и на этом всё.
Скачать скрипт

Посетив эту страницу вы сможете посмотреть видеоролик, демонстрирующий работу скрипта.

Leave your response!

You must be logged in to post a comment.