Доброго времени суток!
Я в скриптинге для InDesign новичок, так что не бейте сильно ...
Есть такой несложный скрипт, который в выделенных рядах устанавливает для четных ячеек один стиль, для нечетных - другой:
Работает правильно, но МЕДЛЕННО! Вручную я с такой же скоростью могу это сделать, если не быстрее. Машина двухядерная, с 4Гб памяти, WinXP, Adobe InDesign CS3.
Пытаюсь сделать перебор быстрее:
И получаю ошибку.
Насколько я понял, я получаю массив, но я не могу работать с отдельными элементами массива - так, что ли?..
Подскажите, пожалуйста, а то уже час бьюсь!
Я в скриптинге для InDesign новичок, так что не бейте сильно ...
Есть такой несложный скрипт, который в выделенных рядах устанавливает для четных ячеек один стиль, для нечетных - другой:
Код:
var sels = app.selection;
var styleOdd = "Белый";
var styleEven = "Серый";
var odd = 1;
try
{
if (!sels.length)
throw ("Необходимо что-нибудь выделить.");
if (sels[0].constructor.name != "Cell")
throw ("Необходимо выделить клетки. Сейчас выделено \"" + sels[0].constructor.name + "\".");
for (i = 0; i < sels[0].rows.length; ++i)
{
var row = sels[0].rows[i];
for (j = 0; j < row.cells.length; ++j)
{
var cell = row.cells[j];
cell.clearCellStyleOverrides (true);
cell.appliedCellStyle = odd ? styleOdd : styleEven;
}
odd = 1 - odd;
}
}
catch (err)
{
alert (err);
}
Работает правильно, но МЕДЛЕННО! Вручную я с такой же скоростью могу это сделать, если не быстрее. Машина двухядерная, с 4Гб памяти, WinXP, Adobe InDesign CS3.
Пытаюсь сделать перебор быстрее:
Код:
..
with (sels[0].rows.everyItem ())
{
with (everyItem ())
{
clearCellStyleOverrides (true);
appliedCellStyle = odd ? styleOdd : styleEven;
}
odd = 1 - odd;
}
..
И получаю ошибку.
Насколько я понял, я получаю массив, но я не могу работать с отдельными элементами массива - так, что ли?..
Подскажите, пожалуйста, а то уже час бьюсь!