Сама кнопка - это типичное окно:

myButton = window.add("button", undefined, localize (btnText) )

Если включена автоматическая установка необходимой языковой версии:

$.localization = true тогда достаточно написать так:

myButton = window.add("button", undefined, btnText)

Кроме того, предусмотрено использование переменных, что расширяет наши возможности. Переменные представляют собой ссылки на результат, возвращаемый функцией localize(), при этом %1 дает ссылку на первое возвращаемое значение, %2 - на второе и т. д. (листинг 3.8).

; v ......ч ................. ,-«• v-I .

: Листинг 3.8. Пример использования функции; localize Q '

Today = {

en: "Today is %l/%2", de: "Heute ist der %2.%1"

} '

myDate = new Date();

window.alert(localize (today, d.getMonth()+1, d.getDateO ) ); В английском варианте получим:

Today is 6/1

В немецком:

Heute ist der 1.6

3.4. Новое в Creative Suite 3

InDesign CS3 значительно прибавил в возможностях по созданию элементов интерфейса благодаря включению компонента ScriptUl, который позволяет создавать пользовательские плавающие палитры, индикаторы выполнения и даже собственные контекстно-зависимые меню.

Принцип работы при создании индикатора выполнения следующий:

1. Создание нового окна.

2. Создание в окне элемента "полоса прогресса".

3. Вывод индикатора выполнения на экран.

4. Отображение результата.

5. При достижении 100% - сокрытие индикатора выполнения.

Код, реализующий эту последовательность действий, представлен в листинге 3.9.

! Листинг 31э. Создание индикатора выполнения раёоты при добавлении [ в документ 100 страниц

// Создание окна (панели)

myProgressPanel = new Window('window', ’Progress');

// Необходимые параметры var myMaximumValue = 100; var myProgressBarWidth = 100 var myProgressBarHeight = 20

// Шаг индикатора var myStep = 1;

// Задание координат для окна индикатора (в массиве),

// начального и конечного значений

myProgressPanel.myProgressBar = add('progressbar', [12, 12,

myProgressBarWidth, myProgressBarHeight], 0, myMaximumValue);

// Вывод на экран

myProgressPanel.show();

for (var i = 0; i < 101; i ++) {

// Отображение процесса выполнения myProgressPanel.myProgressBar.value = i/ myStep;

// Сам процесс, для которого выводится индикатор:

// добавление страницы в цикле 100 раз арр.documents[0].pages.add(); if(i == 100){

// Если выведены все 100 страниц myProgressPanel.hide();

}

}

Такой подход оптимален при разовом выводе индикатора в процессе работы скрипта. Однако зачастую лучше разделить процесс на две фазы:

инициализация окна с индикатором;

вывод на экран, реализация динамики прогресса и по окончании - закрытие окна.

Такое разнесение процессов позволит единожды создать окно с индикатором состояния и потом, по мере необходимости, вызывать его для отображения степени выполнения скриптом различных операций. В таком случае реализация индикатора будет немного отличаться.


⇐ вернуться назад | | далее ⇒