(

myObj ect = myObjects[j];

11 Каждый объект дублируется и сдвигается в соответствии // с установками пользователя myObject = myObject.duplicate();

myObject.move(undefined, [myXOffset*i, mvYOffset*i]);

II Обработка величины вращения.

11 Каждое действие состоит в изменении текущего значения //на приращение if (myRotation != 0){

myObject.rotate(myRotation*i, myProxy, true, true);

)

// Обработка толщины окантовки.

// Ограничиваемся разумными пределами if (myStrokeWeight != 0){

newValue = myObject.strokeWeight + (myStrokeWeight*i); if (newValue >= 0 && newValue <= 800) myObject.strokeWeight = newValue;

)

// Обработка степени прозрачности if (myOpacity != 0){

newValue = myObject.opacity + (myOpacity*i); if (newValue >= 0 && newValue <= 100 ) myObject.opacity = newValue;

)

// Масштабирование по обеим осям if (myXScale != 0){

newValue = myObject.horizontalScale + (myXScale*i); if (newValue >= 0.01)

myObject.horizontalScale = newValue;

)

if (myYScale != 0){

newValue = myObject.verticalScale + (myYScale*i); if (newValue >= 0.01)

myObject.verticalScale = newValue;

)

// Скосы

if (mySkew != 0){

newValue = myObject.shearAngle + (mySkew*i); if (newValue >= -80 && newValue <= 80 )

myObject.shearAngle = newValue;

}

// Окантовка if (myStrokeTint != 0){

newValue = myObject.strokeTint + (myStrokeTint*i); if (newValue >= 0 && newValue <= 100 ){ myObject.strokeTint = newValue;

}

}

// Аналогично для заливки if (myFillTint != 0){

if(myObject.strokeTint = -1){

newValue = myObject.fillTint + (myFillTint*i);

}

else{

newValue = 100 + (myFillTint*i);

}

if (newValue >= 0 && newValue <= 100 ){ myObject.fillTint = newValue;

}

}

}

}

}

Как видите, несмотря на значительный объем, занимаемый кодом для вывода диалогового окна и считывания значений, играющих вспомогательную функцию, сама исполняющая часть очень проста, все очень наглядно.

4.13. Метла для монтажного стола

Монтажный стол предназначен для временного хранения элементов публикации. На него складываются элементы оформления, изображения и т. д., которые по каким-то причинам не могут быть сразу же поставлены в полосу набора. При интенсивной работе с макетом, состоящим из одной или более сотен страниц, поиск нужного элемента, не зная хотя бы приблизительно, где он находится, обернется ощутимыми затратами времени. Данный скрипт значительно упрощает процесс поиска- он сканирует монтажные столы всех разворотов, после чего их содержимое переносит на текущий разворот (листинг 4.28).

Листинг 4.28. Поиск объекта на монтажных столах

myDocument = арр.activeDocument myPageltems = myDocument.pagelterns; var moveablesArray = [];

for (var i=0; i< myPageltems.length; i++) {

if (myPageltems[i].parent.constructor.name == "Page”) { continue;

}

moveablesArray.push( myPageltems[i].id );

}

var mySpread = app.activewindow.activeSpread; for (j in moveablesArray) {

var myObj = myDocument.pageltems.itemByID(moveablesArray[j]); if (myObj.parent = mySpread){ continue;

}

myBounds = myObj.geometricBounds; if (myObj.locked){ continue;


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